큰 테이블의 각 그룹에 대한 열의 최대값을 효율적으로 찾으려면 어떻게 해야 합니까?
Jan 21, 2025 am 08:12 AM큰 테이블의 그룹화된 열에서 최대값 찾기
이 예에서는 비효율적인 다중 테이블 검색을 수행하지 않고 큰 테이블의 각 그룹에서 특정 열의 최대값을 갖는 행을 추출해야 합니다. 다음 형식을 고려하세요.
1 2 3 4 5 6 7 8 |
|
귀하의 목표는 각 고유 ID의 최신 라운드와 해당 점수를 검색하는 것입니다. 원하는 출력은 다음과 같습니다.
1 2 3 4 |
|
창 기능을 활용한 효율적인 솔루션
효율적인 방법은 DISTINCT 키워드와 함께 창 기능을 사용하는 것입니다.
1 2 3 4 5 6 7 |
|
이 쿼리는 다음 주요 개념을 사용합니다.
- PARTITION BY: ID 열을 기준으로 행을 그룹화합니다.
- MAX(round): 각 파티션의 최대 라운드 수를 계산합니다.
- FIRST_VALUE(점수): 최대 라운드 수를 사용하여 각 ID의 첫 번째(최신) 점수를 검색합니다.
- DISTINCT: 중복된 결과를 제거하고 고유한 행만 반환되도록 합니다.
이 최적화된 쿼리는 테이블을 여러 번 스캔할 필요 없이 각 고유 ID에 대한 최신 라운드와 점수를 효율적으로 반환하므로 대규모 테이블의 경우에도 효율성이 유지됩니다.
위 내용은 큰 테이블의 각 그룹에 대한 열의 최대값을 효율적으로 찾으려면 어떻게 해야 합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

인기 기사

인기 기사

뜨거운 기사 태그

메모장++7.3.1
사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전
중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기
강력한 PHP 통합 개발 환경

드림위버 CS6
시각적 웹 개발 도구

SublimeText3 Mac 버전
신 수준의 코드 편집 소프트웨어(SublimeText3)

뜨거운 주제











Alter Table 문을 사용하여 MySQL에서 테이블을 어떻게 변경합니까?

MySQL의 문제를 해결하는 방법 공유 라이브러리를 열 수 없습니다.

Linux에서 MySQL을 실행합니다 (Phpmyadmin이있는 Podman 컨테이너가 포함되지 않음)

인기있는 MySQL GUI 도구는 무엇입니까 (예 : MySQL Workbench, Phpmyadmin)?

일반적인 취약점 (SQL 주입, 무차별 적 공격)에 대해 MySQL을 어떻게 보호합니까?
