小白教程

 找回密码
 立即注册
查看: 8335|回复: 1

mysql分析函数语法问题求教

[复制链接]

1

主题

1

帖子

3

积分

新手上路

Rank: 1

积分
3
发表于 2021-5-26 19:21:38 | 显示全部楼层 |阅读模式
  1. select  adb_time,week_name
  2. ,sum(busi_table_sub_discount_num)over()
  3. ,sum(busi_table_sub_discount_num)
  4. from ads_busi_daily_report_di_v3
  5. where adb_time <= 20210415 and adb_time >= 20210412
  6. group by adb_time,week_name。
复制代码
结果报错:`qbi`.`sum`(`busi_table_sub_discount_num`) OVER ()' must be an aggregate expression or appear in GROUP BY clause
就是说该分析函数的字段也必须是聚合函数或者groupby里的,但是,问题来了,sum()难道不是聚合吗?

最后我是通过在套一层sum解决的,但是这个问题想不通,求各位大佬指正。。而且我记得我以前这么写过啊。。。。oracle可以这么用吗
回复

使用道具 举报

0

主题

1

帖子

2

积分

新手上路

Rank: 1

积分
2
发表于 2021-5-29 02:44:34 | 显示全部楼层
分组求和函数你可能理解的有点问题。。sum(a)over()你在里面不写partition by 子句的情况下,它执行逻辑是对所有字段分组对a求和。相当于select sum(a) from table group by 所有的字段;
你想要分组求和可以这样,sum()over(partition by adb_time,week_name)。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|小白教程 ( 粤ICP备20019910号 )

GMT+8, 2024-11-24 13:26 , Processed in 0.022244 second(s), 24 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc. Template By 【未来科技】【 www.wekei.cn 】

快速回复 返回顶部 返回列表