집 >데이터 베이스 >MySQL 튜토리얼 >SQL에서 각 그룹의 상위 두 행을 얻는 방법은 무엇입니까?
SQL에서 각 그룹의 상위 2개 행 가져오기
SQL 쿼리를 사용하면 사용자가 테이블에서 특정 데이터를 추출할 수 있지만 필요한 경우 어떻게 해야 합니까? 각 그룹의 상위 두 행을 선택하려면? 이 시나리오는 가장 높은 점수를 받은 기록을 분석하거나 그룹 내에서 여러 값을 검색하려고 할 때 발생할 수 있습니다.
다음 표를 예로 들어 보겠습니다.
NAME | SCORE |
---|---|
willy | 1 |
willy | 2 |
willy | 3 |
zoe | 4 |
zoe | 5 |
zoe | 6 |
각 이름에 대해 가장 높은 두 점수를 얻으려면 다음 SQL 쿼리를 활용할 수 있습니다.
SELECT * FROM test s WHERE ( SELECT COUNT(*) FROM test f WHERE f.name = s.name AND f.score >= s.score ) <= 2
쿼리 방법은 다음과 같습니다. 작동:
이 쿼리의 예상 결과는 다음과 같습니다.
NAME | SCORE |
---|---|
willy | 2 |
willy | 3 |
zoe | 5 |
zoe | 6 |
위 내용은 SQL에서 각 그룹의 상위 두 행을 얻는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!