当前位置: 首页 > 面试题库 >

将在CASE语句中计算出的两列相乘

苍和裕
2023-03-14
问题内容

我正在使用以下CASE语句在PostgreSQL中执行SQL查询:

SELECT
    CASE column1
        WHEN something THEN 10
        ELSE 20
        END AS newcol1
    CASE column12
        WHEN something THEN 30
        ELSE 40
        END AS newcol2
COUNT(column3) newcol3
FROM table
GROUP BY newcol1,newcol2,newcol3

我需要第四列,该列必须是的结果newcol2 * newcol3,我该怎么做?

如果我把(newcol2 * newcol3) AS newcol4我语法错误。


问题答案:

如果有帮助,您总是可以使用CTE将事物抽象到不同的层次-类似于…

With CTE as
(
 SELECT
  CASE column1
    WHEN something THEN 10
    ELSE 20
    END AS newcol1,
  CASE column12
    WHEN something THEN 30
    ELSE 40
    END AS newcol2,
  column3,
 FROM table
)
SELECT
  newcol1, newcol2,
  count(column3) as newcol3,
 (newcol2 * newcol3) AS newcol4
FROM CTE 
GROUP BY newcol1,newcol2,newcol3


 类似资料:
  • 问题内容: 假设我想要一个表来记录其他表中的日期和列数(或者实际上是任何种类的数学/字符串concat等)。 每当执行插入操作时,是否可以为我计算计数列? 例如做类似的事情: 并具有由mysql计算的计数。 显然,我可以自己做一个查询来获取计数并插入计数,但是这样做会更好。 问题答案: 当通过插入,更新或删除表来更改数据时,触发器是注释数据的最佳工具。 要使用当前日期自动将日志中新行的日期列设置为

  • Erlang提供case语句,可用于根据case语句的输出执行表达式。 本声明的一般形式是 - 语法 (Syntax) case expression of value1 -> statement#1; value2 -> statement#2; valueN -> statement#N end. 本声明的一般工作如下 - 要评估的表达式放在case语句中。 这通常会评估为

  • 除非编译器强制要求,括号在 case 语句里面是不必要的。但是当一个 case 包含了多行语句的时候,需要加上括号。 switch (condition) { case 1: // ... break; case 2: { // ... // Multi-line example using braces

  • 问题内容: 任何人都可以将下面的嵌套IIF解码为SQL中的CASE语句吗。我知道SQL Server 2012中允许使用IIF,但是我很难理解嵌套IIF逻辑。.以下是我的嵌套IIF语句 任何帮助深表感谢。 问题答案: 这应该是等效的:

  • 问题内容: 我想知道是否有可能在SQL代码的CASE语句中包含INSERT INTO语句。 这是我要执行的操作的粗略伪代码: 问题答案: 您将需要用语句代替。大概是这样的(不确定db2的语法):

  • 主要内容:语法,示例Erlang 提供 case 语句,它可以用于执行基于 case 语句的输出表达式。这个语句的一般形式是 - 语法 这条语句一般工作如下 - 待计算的表达式被放置在 case 语句中。这通常将计算为一个值在随后的语句中使用。 每个值都通过 case 表达式评估匹配排除其它。根据它的值是 true 时,case 中后续的语句将被执行。 下图显示了 case 语句的流程。 下面的程序是在 Erlang