집 >데이터 베이스 >MySQL 튜토리얼 >SQL에서 최대 열 값과 해당 데이터를 효율적으로 검색하는 방법은 무엇입니까?
SQL에서 효율적으로 최대값과 관련 데이터 찾기
데이터 분석가는 테이블 내 열에서 가장 높은 값을 추출하고 다른 열에서 관련 데이터를 추출해야 하는 경우가 많습니다. 대규모 데이터 세트의 경우 효율성이 가장 중요합니다. ID별로 그룹화하고 최대 버전을 선택하는 것이 간단해 보일 수 있지만 이 접근 방식에서는 관련 태그가 생략됩니다.
ROW_NUMBER()
기능을 활용하면 더욱 우수하고 효율적인 방법이 됩니다. 다음 쿼리를 고려해보세요.
<code class="language-sql">SELECT s.id, s.tag, s.version FROM ( SELECT t.*, ROW_NUMBER() OVER(PARTITION BY t.id ORDER BY t.version DESC) as rnk FROM YourTable t ) s WHERE s.rnk = 1;</code>
이 쿼리는 ROW_NUMBER()
열을 기준으로 그룹(파티션) 내의 각 행에 순위를 할당하기 위해 id
을 사용합니다. PARTITION BY t.id
각 고유 ID에 대해 독립적인 순위를 보장합니다. ORDER BY t.version DESC
버전의 내림차순으로 행의 순위를 매기며, 각 ID의 최대 버전이 있는 행에 1순위를 할당합니다.
외부 WHERE
절은 순위가 1인 행만 유지하여 결과를 필터링합니다. 이는 고유 ID, 해당 태그 및 각 ID의 최대 버전을 효율적으로 검색합니다. ROW_NUMBER()
기능은 대규모 데이터 세트를 효과적으로 처리하는 데 핵심입니다.
위 내용은 SQL에서 최대 열 값과 해당 데이터를 효율적으로 검색하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!