簡體   English   中英

僅返回另一個唯一列的最高值

[英]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 BYMAX

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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM