집 >데이터 베이스 >MySQL 튜토리얼 >Microsoft Access SQL에서 그룹당 상위 N개 레코드를 검색하는 방법은 무엇입니까?
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 중국어 웹사이트의 기타 관련 기사를 참조하세요!