[英]MySQL sort by two columns
我有一張桌子。
id name data
1 DAN xxxxxxxxx
2 ANTONY xxxxxxxxx
3 DAN xxxxxxxxx
4 DAN xxxxxxxxx
5 JOSEPH xxxxxxxxx
6 ANTONY xxxxxxxxx
7 JOSEPH xxxxxxxxx
我想先使用ID對表格進行排序,然后再按名稱分組。 例如。
7 JOSEPH xxxxxxxxx
5 JOSEPH xxxxxxxxx
6 ANTONY xxxxxxxxx
2 ANTONY xxxxxxxxx
4 DAN xxxxxxxxx
3 DAN xxxxxxxxx
1 DAN xxxxxxxxx
我嘗試了ORDER BY的各種組合,也嘗試了ORDER BY FIELD,但無法獲得所需的結果
嘗試使用
select *, (select max(id) from tab t2 where t2.name = t1.name) m
from tab t1
order by m desc, id desc;
您還可以使用窗口函數獲取每個名稱的最大ID,並將其用於訂購目的。
SELECT *,
MAX(id) OVER(PARTITION BY name ORDER BY id DESC) Ord
FROM table t
ORDER BY Ord DESC
您可以按的order by
使用子查詢,因此可以將其表示為:
select t.*
from t
order by (select max(id) from t t2 where t2.name = t.name) desc, id desc;
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.