>데이터 베이스 >MySQL 튜토리얼 >MySQL에서 각 고유 RID에 대한 최신 행의 PID를 가져오는 방법은 무엇입니까?

MySQL에서 각 고유 RID에 대한 최신 행의 PID를 가져오는 방법은 무엇입니까?

Patricia Arquette
Patricia Arquette원래의
2025-01-04 07:12:33149검색

How to Fetch the Latest Row's PID for Each Unique RID in MySQL?

MAX() 및 GROUP BY를 사용하여 그룹당 최신 행 가져오기

타임스탬프, 비용, 제거 등과 같은 열이 포함된 MySQL 테이블이 있는 시나리오를 생각해 보세요. . 귀하의 목표는 각 고유 제거에 대한 최신 행의 pid를 검색하는 것입니다.

다음을 사용하여 이 작업을 시도했습니다. 쿼리:

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

그러나 반환된 pid 값이 최대 타임스탬프와 정렬되지 않았습니다. 이는 GROUP BY가 SELECT 절의 모든 열을 고려하고 각 그룹에 대해 일치하는 첫 번째 행을 선택하기 때문입니다.

이를 수정하려면 각 그룹의 ID와 최대 타임스탬프를 식별해야 합니다. 하위 쿼리를 사용하여 이 작업을 수행할 수 있습니다.

SELECT rid, MAX(timestamp) AS ts
FROM theTable
GROUP BY rid

이 쿼리의 결과는 다음과 같습니다.

rid | ts
-----|-----
1    | 2011-04-14 01:06:06
2    | 2011-04-14 01:05:41
3    | 2011-04-14 01:14:14

이제rid를 사용하여 이 하위 쿼리로 원본 테이블을 조인할 수 있습니다. 및 타임스탬프를 사용하여 원하는 pid 값을 검색합니다.

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

이 쿼리의 결과는 pid를 제공합니다. 비용, 타임스탬프 및 각 고유 제거에 대한 최신 행을 제거합니다.

위 내용은 MySQL에서 각 고유 RID에 대한 최신 행의 PID를 가져오는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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