【sql】clickchouse别名使用,聚合函数报错情况

报错信息:

[EXCEPTION] Failed to do execute query. ru.yandex.clickhouse.except.ClickHouseUnknownException: ClickHouse exception, code: 1002, host: 140.210.90.141, port: 8123; Code: 184. DB::Exception: Aggregate function sum(student_num) is found inside another aggregate function in query: While processing sum(student_num) AS student_num. (ILLEGAL_AGGREGATION) (version 21.12.2.17 (official build))↵↵    

报错原因:clickhouse会对同级查询字段的别名进行复用,使用聚合函数时候会报错

解决方法:修改复用聚合函数别名

<--sql1:错误-->
SELECT  SUM(student_num) AS student_num, 
SUM(avg_score / student_num) AS EXPR1,
city AS city student_num 
FROM t1 GROUP BY city 

<--sql2:正确-->
SELECT  SUM(student_num) AS student_num1, <--此处修改别名即可-->
SUM(avg_score / student_num) AS EXPR1,
city AS city student_num 
FROM t1 GROUP BY city 

---扩展---

大多数数据库不会复用,可以使用上面的sql1

mysql中

mysql> select 1 as a ,a +1 as b;
ERROR 1054 (42S22): Unknown column 'a' in 'field list'

clickhouse

SELECT
    1 AS a,
    a + 1 AS b

┌─a─┬─b─┐
│ 1 │ 2 │
└───┴───┘

1 rows in set. Elapsed: 0.004 sec.

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值