You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

MySQL先按指定字段排序,再按其他字段分组取每组首条数据

MySQL实现先排序再分组取每组第一条数据

需求

实现MySQL中先按指定类型排序,再按其他类型分组,获取每组的第一条数据。

原始数据表(users)

nameagesex
a201
b252
c302
d181

期望查询结果

nameagesex
b252
d181

实现SQL语句

select * from (select * from users order by sex desc ,age ) temp group by temp.sex order by sex desc

语句逻辑说明

  1. 子查询先对users表按sex降序、age升序排序,确保同性别分组内数据按年龄从小到大排列;
  2. 将排序后的结果作为临时表temp,按sex分组时,每组会默认取排序后的第一条数据;
  3. 最后按sex降序输出,与期望结果的顺序一致。

内容的提问来源于stack exchange,提问作者liuzheng

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.12 11:25:15