sql 使用max()和group by 同时查询这条记录的其他信息

阅读: 评论:0

sql 使用max()和group by 同时查询这条记录的其他信息

sql 使用max()和group by 同时查询这条记录的其他信息

需求是这样的

SELECTMAX (discharge_amount),CHECK_YEAR
FROMims_source_item_summary
GROUP BYCHECK_year
ORDER BY CHECK_YEAR

查询某个时间内最大的值 ,结果如下:

但是我需要不仅仅查时间和最大值,还想要这条记录的id信息或者其他信息。

大概意思是这样 :

SELECTID,MAX (discharge_amount),CHECK_YEAR
FROMims_source_item_summary
GROUP BYCHECK_year
ORDER BY CHECK_YEAR

但是大家知道聚合函数max 是不允许这样使用的。

得需要这样写sql :

SELECT ID,discharge_amount,check_year
FROMims_source_item_summary A
WHEREdischarge_amount IN (SELECTMAX (discharge_amount)FROMims_source_item_summary bWHEREA .check_year = b.check_year  //这个很关键GROUP BYcheck_year)
ORDER BY check_year

结果如下 :

如果没有上面的 A .check_year = b.check_year 时间约束 则会出现如下情况:

2017 的37 并不是年份的最大值,只是因为和2019的最大值相等而被选择

参考

以上

本文发布于:2024-01-31 14:22:16,感谢您对本站的认可!

本文链接:https://www.4u4v.net/it/170668213929152.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:这条   信息   sql   max   group
留言与评论(共有 0 条评论)
   
验证码:

Copyright ©2019-2022 Comsenz Inc.Powered by ©

网站地图1 网站地图2 网站地图3 网站地图4 网站地图5 网站地图6 网站地图7 网站地图8 网站地图9 网站地图10 网站地图11 网站地图12 网站地图13 网站地图14 网站地图15 网站地图16 网站地图17 网站地图18 网站地图19 网站地图20 网站地图21 网站地图22/a> 网站地图23