簡體   English   中英

查詢從表中獲得不同的最新值

[英]Query of getting distinct latest value from table

在MySQL中,我試圖獲取每個用戶的唯一最新數據。 我目前正在做以下查詢

SELECT DISTINCT username, value, date
FROM table
WHERE date >=  CURDATE()
ORDER BY date DESC

它按用戶名和查詢返回所有值的速度很慢。 有什么方法可以使其更快,並且每個用戶只能獲得一個最新價值?

主要是在您尋找每個用戶名的最新日期時。 希望這個查詢有幫助

SELECT  T.username, T.value, TT.date
FROM table T
WHERE T.Date = (SELECT MAX(TT.Date)
                 FROM table TT
                 WHERE TT.user = T.user)

在子查詢中使用MAX()進行GROUP BY ,以查找每個用戶的最后日期。 加入該結果:

SELECT t1.username, t1.value, t1.date
FROM table t1
JOIN (select username, max(date) as maxdate from table
      group by username) t2 on t1.username = t2.username
                           and t1.date = t2.maxdate
WHERE t1.date >= CURDATE()
ORDER BY t1.date DESC

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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