如何在GROUP BY查询中使用PERCENTILE_CONT计算中位数?
问题解决:PERCENTILE_CONT函数语法错误修复
错误原因在于你对PERCENTILE_CONT的语法使用有误:WITHIN GROUP子句需要指定ORDER BY 排序字段来定义中位数的计算逻辑,而不是PARTITION BY。同时,别名不能直接用括号包裹,需要调整格式避免语法冲突。
正确的查询语句如下:
SELECT Id, Currency, Count(*) AS Cnt, PERCENTILE_CONT(0.5) WITHIN GROUP (ORDER BY Value) AS Median_Value, MAX(Institution) AS Institution FROM TabA WHERE Institution like '%Fed%' GROUP BY Id, Currency ORDER BY Institution
关键说明:
PERCENTILE_CONT(0.5)用于计算50%分位数(即中位数)WITHIN GROUP (ORDER BY Value)指定基于Value列的排序规则来计算中位数- 由于查询已按
Id,Currency分组,函数会自动在每个分组内计算对应Value的中位数 - 如果你的数据库支持带特殊格式的别名,可以将
Median_Value替换为"Median(Value)"(用双引号包裹)
内容的提问来源于stack exchange,提问作者aka baka
相关产品推荐
相关产品推荐

