![](/img/trans.png)
[英]Return rows with the highest value on one column corresponding to a given value in another
[英]Only Return Highest Value for another unique Column
最好不下載整個數據庫並掃描每個項目,是否有可以訪問此表的MySQL查詢:
__________________________________
| ColID | Timestamp |
|___________|_____________________|
|_____2_____|_2012-08-01_12:00:00_|
|_____1_____|_2012-08-01_12:01:00_|
|_____3_____|_2012-08-01_12:02:00_|
|_____3_____|_2012-08-01_12:03:00_|
|_____2_____|_2012-08-01_12:04:00_|
|_____3_____|_2012-08-01_12:05:00_|
並只返回這些行:
__________________________________
| ColID | Timestamp |
|___________|_____________________|
|_____1_____|_2012-08-01_12:01:00_|
|_____2_____|_2012-08-01_12:04:00_|
|_____3_____|_2012-08-01_12:05:00_|
因此,只提取具有最高Timestamp
的每個ColID
一個
使用GROUP BY
和MAX
:
SELECT ColID, MAX(Timestamp) AS Timestamp
FROM tbl
GROUP BY ColID
此外,您可能還需要記住未來的提示:如果您還想為每個最大ColID
選擇可能位於同一個表中的其他列,則由於其性質,您無法在上述查詢中直接選擇它。 GROUP BY
。 您需要將查詢包裝在連接的subselect中,同時加入id和date列:
SELECT b.*
FROM tbl a
JOIN (
SELECT ColID, MAX(Timestamp) AS max_timestamp
FROM tbl
GROUP BY ColID
) b ON a.ColID = b.ColID AND a.max_timestamp = b.Timestamp
是的,你可以通過使用帶有MAX
GROUP BY
來實現這個目的:
SELECT ColID, MAX(Timestamp) AS max_Timestamp
FROM my_table
GROUP BY ColID;
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.