[英]Select unique row grouped by column with MySQL
我的桌子看起來像:
ID | 類型
01 | 一種
02 | C
03 | b
04 | 一種
05 | b
06 | 一種
我想輸出按Type分組的最后添加的條目的ID 。 ID是一個自動遞增的字段,因此最后添加的條目顯然是最高的數字。
SELECT * FROM `table` GROUP BY `Type` ORDER BY `ID` DESC, `Type` ASC
這將按類型對行進行分組,然后按ID排序,所以我得到ID 1,2,3,而我想先對THEN組排序以獲得結果:6,5,2
如果您的MySQL版本允許子選擇(而5.x允許),則應該可以:
SELECT *
FROM (SELECT * FROM `table` ORDER BY `id` DESC) AS tmp
GROUP BY `type`
ORDER BY `type` ASC;
這可能是您要尋找的...
SELECT MAX(`ID`), `Type` FROM `table` GROUP BY `Type` ORDER BY `Type` ASC
讀取為為每個Type組選擇ID的最大值。
這是不帶子選擇的經典方式:
SELECT t1.* FROM table t1
LEFT JOIN table t2
ON (t2.type = t1.type AND t2.id > t1.id)
WHERE t2.id IS NULL
讀取為“選擇表中的行,以使其他相同類型的行都沒有更大的id”。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.