众所周知, 我们使用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方案
待补充