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

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

Mary-Kate Olsen
풀어 주다: 2025-01-01 00:16:09
원래의
282명이 탐색했습니다.

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 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
저자별 최신 기사
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿