裑躰哙蔂菿 2023-04-21 20:59 采纳率: 81.5%
浏览 20
已结题

关于Mysql里面的聚合的问题

对一张表进行运算:要算出每一个人,在每一个学科的最高分,以及获得最高分对应的时间。
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';两个命令解除的。

  • 写回答

3条回答 默认 最新

  • 创意程序员 2023-04-21 21:51
    关注

    group by a,b 那么a,b以外的其它列必须出现在聚合函数中。可以去掉d,查询当做子查询,然后关联原表查询d,关联条件就是聚合查到的那几列

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论 编辑记录
查看更多回答(2条)

报告相同问题?

问题事件

  • 系统已结题 4月29日
  • 已采纳回答 4月21日
  • 创建了问题 4月21日

悬赏问题

  • ¥100 set_link_state
  • ¥15 虚幻5 UE美术毛发渲染
  • ¥15 CVRP 图论 物流运输优化
  • ¥15 Tableau online 嵌入ppt失败
  • ¥100 支付宝网页转账系统不识别账号
  • ¥15 基于单片机的靶位控制系统
  • ¥15 真我手机蓝牙传输进度消息被关闭了,怎么打开?(关键词-消息通知)
  • ¥15 装 pytorch 的时候出了好多问题,遇到这种情况怎么处理?
  • ¥20 IOS游览器某宝手机网页版自动立即购买JavaScript脚本
  • ¥15 手机接入宽带网线,如何释放宽带全部速度