首页 > 数据库技术 > 详细

SQL - 查询某一字段值相同而另一字段值最大的记录

时间:2021-05-09 11:14:48      阅读:27      评论:0      收藏:0      [点我收藏+]

有时需要以某一字段作为分组,筛选每一组的另一字段值最大(或最小)的记录。例如,有如下表 app,存储了 app 的 ID、名称、版本号等信息。现在要筛选出每个 app 版本最大的记录。

技术分享图片

 

方法一

SELECT a.* FROM app a 
WHERE a.app_version = (SELECT MAX(b.app_version) FROM app b WHERE b.app_name = a.app_name) 
ORDER BY a.app_name;

方法二

SELECT a.* FROM app a
WHERE NOT EXISTS(SELECT 1 FROM app b WHERE b.app_name = a.app_name AND b.app_version > a.app_version)
ORDER BY a.app_name;

方法三

SELECT a.* 
FROM app a, (SELECT app_name, MAX(app_version) AS app_version FROM app GROUP BY app_name) b
WHERE a.app_name = b.app_name
AND a.app_version = b.app_version
ORDER BY a.app_name;

方法四

SELECT a.* 
FROM app a INNER JOIN (SELECT app_name, MAX(app_version) AS app_version FROM app GROUP BY app_name) b
ON a.app_name = b.app_name
AND a.app_version = b.app_version
ORDER BY a.app_name;

 

SQL - 查询某一字段值相同而另一字段值最大的记录

原文:https://www.cnblogs.com/pythonClub/p/14747209.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!