SnowSQL中结合Groupby使用Count Distinct窗口函数的实现问题
问题原因
你的SQL报错主要有两点:
GROUP BY仅指定了用户字段,但窗口函数用到的市场字段既不在分组维度中,也没有被聚合函数包裹,不符合GROUP BY的语法要求- 你混合了普通聚合和窗口聚合逻辑,GROUP BY执行后已经丢失了全量购买ID的明细数据,窗口函数无法再统计整个市场的唯一购买ID总数
解决方案(无任何子查询,符合SnowSQL语法规范)
SELECT DISTINCT 用户, COUNT(DISTINCT Purchase_ID) OVER (PARTITION BY 用户) AS 购买次数, COUNT(DISTINCT Purchase_ID) OVER (PARTITION BY 市场) AS 市场唯一购买总数 FROM 你的表名
执行逻辑说明
- 所有统计逻辑都通过窗口函数直接在原始明细行上计算,不需要提前聚合
- 最终通过
DISTINCT去重,每个用户仅保留一行统计结果,和你预期的输出格式完全一致
内容的提问来源于stack exchange,提问作者lucas winter
相关产品推荐
相关产品推荐

