zoukankan      html  css  js  c++  java
  • SQL

     

    有时需要以某一字段作为分组,筛选每一组的另一字段值最大(或最小)的记录。例如,有如下表 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;
  • 相关阅读:
    QTableWidget控件总结<一>
    软件工程概论9
    软件工程概论8
    软件工程概论7
    软件工程概论6
    软件工程概论5
    软件工程概论4
    软件工程概论3
    软件工程概论2
    安装gocode教程
  • 原文地址:https://www.cnblogs.com/pythonClub/p/14747209.html
Copyright © 2011-2022 走看看