【MySQL】sort by then group by

tb:blog

 

 

### 需求:根据id进行分组,找到分组内hour中最大的一项

错误写法:select

select id, max(hour) from tb group by id;im

 

正确的写法:数据

 

 

### 需求:根据id进行分组,找到分组内hour中最大的一项### 1.根据id进行分组,列出id与max(hour);此时,是组内的未知序的第一条,max仅检索hour列的最大值,与该行的其余属性无关SELECT id, max(hour), nameFROM tbGROUP BY id### 2.经过id, max(hour)再次和tb进行自链接,能够仅保留上一个逻辑过滤分组剩下的,且经过on maxhour链接取得b表的hour项的数据SELECT a.id, a.maxhour, b.nameFROM (       SELECT id, max(hour) AS maxhour, name       FROM tb       GROUP BY id) a       JOIN tb b ON a.id = b.id AND a.maxhour = b.hour
相关文章
相关标签/搜索