>데이터 베이스 >MySQL 튜토리얼 >Microsoft Access SQL에서 그룹당 상위 N개 레코드를 검색하는 방법은 무엇입니까?

Microsoft Access SQL에서 그룹당 상위 N개 레코드를 검색하는 방법은 무엇입니까?

DDD
DDD원래의
2025-01-07 17:27:40885검색

How to Retrieve the Top N Records per Group in Microsoft Access SQL?

SQL(액세스)을 사용하여 각 그룹의 상위 N개 레코드를 가져옵니다

질문:

Microsoft Access에서 SQL을 사용하여 각 그룹의 n개의 최신 레코드를 얻는 방법은 무엇입니까?

배경:

사용자에게는 사용자 및 해당 점수에 대한 정보가 각각 포함된 "User" 및 "Progress"라는 테이블이 있습니다. 각 사용자의 최근 점수 3개를 표시하려면 쿼리가 필요합니다.

정답:

다음 중첩 쿼리는 각 사용자의 최근 점수 3개를 검색합니다.

<code class="language-sql">SELECT PR1.LogInID, PR1.Score, PR1.[Date Taken]
FROM Progress AS PR1
WHERE PR1.[Date Taken] IN (
                        SELECT TOP 3 PR2.[Date Taken]
                        FROM Progress PR2
                        WHERE PR2.LoginID = PR1.LoginID
                        ORDER BY PR2.[Date Taken] DESC
                        )
ORDER BY LoginID, [Date Taken]</code>

지침:

IN 절 내의 하위 쿼리는 TOP 키워드와 ORDER BY 절을 사용하여 각 LoginID에 대한 최신 날짜 3개를 검색합니다. 그런 다음 기본 쿼리는 [Date Taken] 열이 각 LoginID의 최신 날짜 3개 중 하나와 일치하는 Progress 테이블에서 해당 레코드를 선택합니다. 기본 쿼리의 ORDER BY 절을 사용하면 레코드가 LoginID 및 [촬영 날짜]를 기준으로 내림차순으로 정렬됩니다.

위 내용은 Microsoft Access SQL에서 그룹당 상위 N개 레코드를 검색하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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