mysql中對分組內容排序

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

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章