programing

각 ID의 마지막 레코드 가져오기

skycolor 2023. 10. 29. 19:08
반응형

각 ID의 마지막 레코드 가져오기

다음과 같은 질문이 있습니다.

SELECT  Truck.Name AS name,
        timestamp,
        oil,
        diesel,
        cargo,
        Truck.notes AS Remarks

        FROM trip
        INNER JOIN Truck USING (idTruck)
        WHERE idTruck IN('2','4','5','6','7','8','9','11','12','13','14','15','16')
        ORDER BY name, timestamp DESC

CURDATE를 사용하려고 생각했던 ID의 모든 레코드를 반환합니다.

AND DATE(timestamp) = CURDATE()

마지막 레코드를 얻기 위해 그러나 레코드가 하루에 수정되지 않을 때(일반적으로 수정되지만 때로는 그렇지 않을 때도 있습니다).기록을 잃어가고 있습니다.단일 쿼리의 타임스탬프에 관계없이 각 idTruck의 마지막 항목을 가져오려면 쿼리를 어떻게 수정해야 합니까?

마지막 레코드(MAX(Truck)를 얻기 위해서 sql의 MAX 기능을 사용하는 것을 추천합니다.이름)):

SELECT  MAX(Truck.Name) AS name,
        timestamp,
        oil,
        diesel,
        cargo,
        Truck.notes AS Remarks

FROM trip
INNER JOIN Truck USING (idTruck)
WHERE idTruck IN('2','4','5','6','7','8','9','11','12','13','14','15','16')
ORDER BY name, timestamp DESC

각 ID의 마지막 레코드를 가져오는 방법:

SELECT  MAX(Truck.Name) AS name,
        timestamp,
        oil,
        diesel,
        cargo,
        Truck.notes AS Remarks

FROM trip
INNER JOIN Truck USING (idTruck)
WHERE idTruck IN('2','4','5','6','7','8','9','11','12','13','14','15','16')
GROUP BY idTruck 
ORDER BY name, timestamp DESC

sql.sh (https://sql.sh/fonctions/agregation/max) 에 따르면:

집계 함수 MAX()를 사용하면 레코드 집합에서 열의 최대값을 반환할 수 있습니다.이 기능은 숫자 또는 영숫자 데이터에 적용할 수 있습니다.예를 들어, 온라인 샵의 테이블에서 가장 비싼 상품을 검색하는 것이 가능합니다.

언급URL : https://stackoverflow.com/questions/62322778/get-last-record-of-each-id

반응형