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