고유 ID별 첫 번째 레코드 추출, 중복 날짜 처리
MyTable
, key_id
, id
열과 기타 열(record_date
)이 있는 테이블(other_cols
이라고 부르겠습니다)을 상상해 보세요. 목표는 모든 고유 record_date
에 대해 가장 빠른 id
을 포함하는 행을 찾아내는 것입니다.
표준 방법은 종종 고유한 record_date
값을 가정하지만 데이터에 중복이 있을 수 있습니다. 서브쿼리와 조인을 이용한 복잡한 쿼리는 불필요한 결과를 낳을 수 있습니다.
보다 간소화된 접근 방식은 하위 쿼리를 사용합니다.
<code class="language-sql">SELECT mt.* FROM MyTable mt INNER JOIN ( SELECT id, MIN(record_date) AS MinDate FROM MyTable GROUP BY id ) t ON mt.id = t.id AND mt.record_date = t.MinDate;</code>
내부 하위 쿼리는 데이터를 그룹화하여 각 record_date
에 대해 가장 빠른 MinDate
(id
)을 효율적으로 찾습니다. 그런 다음 외부 쿼리는 이 결과를 원래 테이블(MyTable
)에 다시 조인하여 record_date
가 하위 쿼리에서 찾은 최소 날짜와 일치하는 행만 선택합니다. 이를 통해 각각의 고유한 id
에 대한 가장 빠른 레코드를 효과적으로 검색하여 중복 날짜를 적절하게 처리하고 중복 데이터를 방지합니다.
위 내용은 중복된 날짜가 있는 테이블에서 각 고유 ID에 대한 가장 빠른 레코드를 효율적으로 찾는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!