google bigquery SQL按聚合函数分组

时间:2018-07-16 11:08:17

标签: sql group-by google-bigquery case-when

在大查询标准SQL中,我收到错误消息:

“错误:第7列包含一个聚合函数,在[17:22]的GROUP BY中是不允许的

其中select子句中定义的第7列如下:-

当MIN(transaction_dttm)= transaction_dttm时的情况,然后以Fcquisition_Flag的形式出现“ NEW”,否则为“ EXISTING”结束

请注意,transaction_date是时间戳。

任何建议的解决方案表示赞赏。

1 个答案:

答案 0 :(得分:1)

也许您只想在子查询中使用窗口功能:

SELECT . . .
FROM (SELECT . . . ,
             (CASE WHEN transaction_dttm = MIN(transaction_dttm) OVER (PARTITION BY ?)
                   THEN 'NEW' ELSE 'EXISTING'
              END) AS Fcquisition_Flag
      FROM . . . 
     ) t
GROUP BY 1, 2, 3, 4, 5, 6, 7

目前尚不清楚您在PARTITION BY中想要什么。