【Mysql使用变量时间提取group by的第一行数据】

时间:2025-04-11 07:18:37

众所周知, 我们使用group by只能获取到分组数据, 但是有时候我们只需要获取到排序在分组最前面的一个数据即可,这时候, 常规sql就无法做到了

Mysql方案

SELECT id, a, b
FROM (SELECT *,
             @row_num := IF(@prev_group = a, @row_num + 1, 1) AS row_num,
             @prev_group := a
      FROM part
      ORDER BY a, b DESC) AS subquery
WHERE row_num = 1;

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8

Postgresql方案

待补充