mysql中對分組內容排序
阿新 • • 發佈:2018-11-06
id | group | sort |
---|---|---|
1 | 1 | 1 |
2 | 1 | 2 |
3 | 2 | 2 |
4 | 2 | 1 |
5 | 1 | 3 |
表sort_group如上圖所示,要求:選取每組中最大值。
方法1:
SELECT a.group, SUBSTR(GROUP_CONCAT(sort ORDER BY sort DESC) FROM 1 FOR 1) maxsort FROM sort_group a GROUP BY `group`;
方法2:
SELECT *
FROM sort_group a
LEFT JOIN sort_group b ON b.`group` = a.`group` AND a.sort < b.sort
WHERE b.sort is null;
這種實現利用了左連線,原理將表根據分組欄位進行自連線,然後根據a.sort < b.sort過濾連線,那麼連線好的記錄中,右表為空時,左表中的a.sort肯定是最大的,這樣最後便得到了需求的記錄。
參考:https://blog.csdn.net/asdasd3418/article/details/77715015