zoukankan      html  css  js  c++  java
  • MySQL查询-分组取组中某字段最大(小)值所有记录

      最近做东西的时候,用到一个数据库的查询。将记录按某个字段分组,取每个分组中某个字段的最大值的所有记录。举栗子来说。

          已知分数表“score”,包含字段“id", "name", "course", "score"。包含记录如下图所示。

      

      现在,要求查询每个人分数最高的课程的那一条记录。即获得如下结果:

      

       大概思路是,先通过order by将记录按score字段排序,创建临时表。然后按name字段分组查询临时表,即可获得所需查询结果。完整的sql语句如下:

           SELECT ns.id, ns.name, ns.course, ns.score FROM ( SELECT id, name, course, score FROM score ORDER BY score DESC) AS ns GROUP BY ns.name ORDER BY ns.id;

       当然要获取分组的最小值,只需在创建临时表ns时,按升序排列 (ORDER BY score ASC) 即可。

       以上。

  • 相关阅读:
    hdu 5366 简单递推
    hdu 5365 判断正方形
    hdu 3635 并查集
    hdu 4497 数论
    hdu5419 Victor and Toys
    hdu5426 Rikka with Game
    poj2074 Line of Sight
    hdu5425 Rikka with Tree II
    hdu5424 Rikka with Graph II
    poj1009 Edge Detection
  • 原文地址:https://www.cnblogs.com/chenxl/p/4370278.html
Copyright © 2011-2022 走看看