对一张表进行运算:要算出每一个人,在每一个学科的最高分,以及获得最高分对应的时间。
A B C D
张三 语文 89 2023-2-1
张三 语文 78 2023-2-7
张三 语文 76 2023-1-30
张三 数学 76 2023-1-30
张三 数学 96 2022-12-4
现在查询是这么写的,
SELECT A, B,MAX(C), D
FROM table1
GROUP BY A,B;
结果发现D列的结果是错误的,就是说返回的不是对应行的时间。
请问这是什么原因造成的?
另外软件是mysql,默认设置里面,如果直接select没有聚合过的列会报错(Error Code: 1055.Expression #1 of SELECT list is not in GROUP BY clause and contains nonaggregated column),使用set global sql_mode='STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION';和set session sql_mode='STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION';两个命令解除的。
关于Mysql里面的聚合的问题
- 写回答
- 好问题 0 提建议
- 追加酬金
- 关注问题
- 邀请回答
-
3条回答 默认 最新
- 创意程序员 2023-04-21 21:51关注
group by a,b 那么a,b以外的其它列必须出现在聚合函数中。可以去掉d,查询当做子查询,然后关联原表查询d,关联条件就是聚合查到的那几列
本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 无用评论 打赏 举报 编辑记录
悬赏问题
- ¥100 set_link_state
- ¥15 虚幻5 UE美术毛发渲染
- ¥15 CVRP 图论 物流运输优化
- ¥15 Tableau online 嵌入ppt失败
- ¥100 支付宝网页转账系统不识别账号
- ¥15 基于单片机的靶位控制系统
- ¥15 真我手机蓝牙传输进度消息被关闭了,怎么打开?(关键词-消息通知)
- ¥15 装 pytorch 的时候出了好多问题,遇到这种情况怎么处理?
- ¥20 IOS游览器某宝手机网页版自动立即购买JavaScript脚本
- ¥15 手机接入宽带网线,如何释放宽带全部速度