嵌套case语句中的聚合函数需要潜在的混乱分组依据

杰克

伪代码来描述我在看什么:

SELECT
  COLUMN_A
, COLUMN_B
, CASE WHEN (OUTER_CONDITION_A = TRUE) THEN
       CASE WHEN (INNER_CONDITION_1 = TRUE) THEN 'Choice 1'
            WHEN (INNER_CONDITION_2 = TRUE) THEN 'Choice 2'
            WHEN (INNER_CONDITION_3 = TRUE) THEN 'Choice 3'
       ELSE 'Other Choice' END
  ELSE CASE WHEN (OUTER_CONDITION_B = TRUE) THEN
       CASE WHEN (INNER_CONDITION_4 = TRUE) THEN 'Choice 4'
            WHEN (INNER_CONDITION_5 = TRUE) THEN 'Choice 5'
            WHEN (INNER_CONDITION_6 = TRUE) THEN 'Choice 6'
       ELSE TO_CHAR(MAX(DATE)) END
  END AS 'COLUMN_C'
, COLUMN_D
FROM TABLE_A

Oracle SQL Developer告诉我,我需要添加GROUP BY子句:

GROUP BY COLUMN_A,COLUMN_B,COLUMN_D

当我尝试运行此命令时,出现ORA-00979(不是GROUP BY表达式)错误。我被困在这里。

古尔温德·辛格(Gurwinder Singh)

您正在MAX(DATE)case语句中使用聚合函数以及其他没有任何group by子句的列。

假设您要获取每一行的总体最大日期,可以使用analytic MAX(DATE) OVER ()

SELECT
  COLUMN_A
, COLUMN_B
, CASE WHEN (OUTER_CONDITION_A = TRUE) THEN
       CASE WHEN (INNER_CONDITION_1 = TRUE) THEN 'Choice 1'
            WHEN (INNER_CONDITION_2 = TRUE) THEN 'Choice 2'
            WHEN (INNER_CONDITION_3 = TRUE) THEN 'Choice 3'
       ELSE 'Other Choice' END
  ELSE CASE WHEN (OUTER_CONDITION_B = TRUE) THEN
       CASE WHEN (INNER_CONDITION_4 = TRUE) THEN 'Choice 4'
            WHEN (INNER_CONDITION_5 = TRUE) THEN 'Choice 5'
            WHEN (INNER_CONDITION_6 = TRUE) THEN 'Choice 6'
       ELSE TO_CHAR(MAX(DATE) OVER ()) END
  END AS 'COLUMN_C'
, COLUMN_D
FROM TABLE_A

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

分组依据是否总是需要聚合函数

来自分类Dev

count(*)SQL语句中需要“分组依据”吗?

来自分类Dev

聚合函数上的Postgres“分组依据”

来自分类Dev

带有分组依据的 sql case 语句 IN

来自分类Dev

分组以在SQL语句中包含case语句

来自分类Dev

需要在 if 语句中嵌套 if 语句的指导

来自分类Dev

case语句和分组依据未正确分组(PostgreSQL)

来自分类Dev

Case 语句中的求和函数

来自分类Dev

涉及日期列时如何处理Case语句中的聚合函数

来自分类Dev

使用联接,分组依据和聚合函数的SQL选择查询

来自分类Dev

R dplyr:分组依据,不具有聚合函数

来自分类Dev

使用分组依据但需要列总计的SQL语句

来自分类Dev

使用分组依据但需要列总计的SQL语句

来自分类Dev

MySQL Case分组依据

来自分类Dev

分组依据的条件聚合查询

来自分类Dev

单个Spark语句中嵌套结构上的多个聚合

来自分类Dev

如何在case语句中调用函数?

来自分类Dev

嵌套在WITH语句中的Case语句未选择案例

来自分类Dev

聚合SQL SELECT语句中的重复CASE WHEN

来自分类Dev

在“分组依据”子句中对值进行分组

来自分类Dev

在行内选择语句中使用聚合函数

来自分类Dev

如何使用分组依据语句

来自分类Dev

MySQL查询-嵌套与分组依据

来自分类Dev

脚本跳过嵌套case语句中的用户输入

来自分类Dev

嵌套的case语句中不接受用户输入

来自分类Dev

嵌套的CASE WHEN语句中缺少关键字

来自分类Dev

MongoDB嵌套聚合分组

来自分类Dev

如何将 Join 与聚合函数和分组依据结合起来

来自分类Dev

使用分组依据聚合不同的列类型