MySQL에서 각 사용자의 유일한 최신 데이터를 얻으려고합니다. 나는 다음과 같은 쿼리를 완수하려고합니다.테이블에서 최신 값을 가져 오는 쿼리
SELECT DISTINCT username, value, date
FROM table
WHERE date >= CURDATE()
ORDER BY date DESC
사용자 이름별로 모든 값을 반환하고 쿼리가 느려집니다. 더 빨라지고 각 사용자의 최신 가치를 얻는 방법이 있습니까?
MySQL에서 각 사용자의 유일한 최신 데이터를 얻으려고합니다. 나는 다음과 같은 쿼리를 완수하려고합니다.테이블에서 최신 값을 가져 오는 쿼리
SELECT DISTINCT username, value, date
FROM table
WHERE date >= CURDATE()
ORDER BY date DESC
사용자 이름별로 모든 값을 반환하고 쿼리가 느려집니다. 더 빨라지고 각 사용자의 최신 가치를 얻는 방법이 있습니까?
각 사용자의 마지막 날짜를 찾기 위해 서브 쿼리에서 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
대부분 각 사용자 이름의 최신 날짜를 찾고있는 경우. 이 쿼리
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)
테이블의 구조를 추가하십시오 – Dekel