同时使用group by 和集合函数时,遇到
select list expression not produced by aggregation output (missing from GROUP BY clause?): 我的sql如下:
select user_id,percent_rank() over(order by days_cnt asc) from (
select user_id,day_cnts
from table_name where dt_ymd between '20230101' and '20230228'
) a
where days_cnt is not null
group by user_id在多次和度娘沟通无果的情况下,濒临崩溃,后经多次尝试【抹了一把辛酸泪】,终于找到问题了
select user_id,days_cntpercent_rank() over(order by days_cnt asc) from (
select user_id,day_cnts
from table_name where dt_ymd between '20230101' and '20230228'
) a
where days_cnt is not null
group by user_id,days_cnt原因是,如果groupby 和聚合函数同时使用,那么groupby后边的字段必须包含聚合函数里用到的字段。扶额~
记录一下,给同样走投无路的小伙伴一点点帮助
当在SQL查询中同时使用groupby和聚合函数如percent_rank时,需确保groupby包含聚合函数涉及的字段。文章作者通过举例说明,如果在groupby中遗漏了days_cnt字段,会导致错误。添加days_cnt到groupby子句后,问题得到解决。此经验分享可帮助遇到类似问题的开发者。
4213

被折叠的 条评论
为什么被折叠?



