>데이터 베이스 >MySQL 튜토리얼 >MySQL의 `MAX()` 및 `GROUP BY`를 사용하여 각 고유 `rid`에 대한 최신 `pid`를 효율적으로 검색하는 방법은 무엇입니까?

MySQL의 `MAX()` 및 `GROUP BY`를 사용하여 각 고유 `rid`에 대한 최신 `pid`를 효율적으로 검색하는 방법은 무엇입니까?

Mary-Kate Olsen
Mary-Kate Olsen원래의
2025-01-01 00:16:09261검색

How to Efficiently Retrieve the Latest `pid` for Each Unique `rid` Using MySQL's `MAX()` and `GROUP BY`?

MySQL 쿼리 최적화: MAX() 및 GROUP BY

문제:

pid, timestamp 열이 있는 테이블이 제공됩니다. , 비용 및 제거의 경우 작업은 각 고유 제거에 대한 최신 행의 pid를 검색하는 것입니다. pid가 자동 증가 기본 키라는 점을 고려하면

원래 쿼리:

다음 쿼리는 최대 타임스탬프와 해당 Rid 값을 검색하지만 올바르게 반환하지 않습니다. 최신 pid:

SELECT MAX(timestamp), rid, pid FROM theTable GROUP BY rid

해결책:

각 제거에 대한 최신 pid를 효과적으로 얻으려면 다음과 같은 기술 조합이 필요합니다.

  1. 최대 타임스탬프와 해당 제거를 식별합니다. 값:

    SELECT rid, MAX(timestamp) AS maxt FROM theTable GROUP BY rid
  2. 최대 타임스탬프 결과에 대해 원래 테이블 조인:

    SELECT
        t.pid,
        t.cost,
        t.timestamp,
        t.rid
    FROM
        theTable AS t
    JOIN
        (SELECT rid, MAX(timestamp) AS maxt FROM theTable GROUP BY rid) AS maxt
    ON
        t.rid = maxt.rid AND t.timestamp = maxt.maxt

이 수정된 쿼리는 pid, 비용, 타임스탬프를 효과적으로 검색하고 각 고유에 대한 최신 행을 제거합니다. 원래 테이블을 제거하세요.

위 내용은 MySQL의 `MAX()` 및 `GROUP BY`를 사용하여 각 고유 `rid`에 대한 최신 `pid`를 효율적으로 검색하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.