집 >데이터 베이스 >MySQL 튜토리얼 >단일 SQL 쿼리를 사용하여 매장당 상위 N개 판매 항목을 검색하는 방법은 무엇입니까?
그룹당 판매된 상위 N개 품목을 검색하는 SQL 쿼리
이 질문에서 사용자는 판매된 상위 5개 품목을 검색하는 SQL 쿼리를 찾습니다. 단일 쿼리로 각 매장의 항목을 검색할 수 있습니다. 제공된 Sales 테이블에는 UPCCode, SaleDate, StoreId 및 TotalDollarSales와 같은 열이 포함되어 있습니다.
원하는 결과를 얻기 위해 단일 SQL 쿼리 내에서 하위 쿼리와 파티셔닝의 조합을 활용할 수 있습니다. 자세한 분석은 다음과 같습니다.
각 UPC코드의 매출 합계를 계산하는 하위 쿼리:
분할된 결과에 행 번호 추가:
각 매장의 상위 N개 항목 선택:
최종 결과 검색:
다음은 이러한 단계를 결합한 전체 SQL 쿼리입니다.
WITH s AS ( SELECT StoreID, UPCCode, tds, rn = ROW_NUMBER() OVER (PARTITION BY StoreID ORDER BY tds DESC) FROM ( SELECT StoreID, UPCCode, tds = SUM(TotalDollarSales) FROM Sales GROUP BY StoreID, UPCCode ) AS s2 ) SELECT StoreID, UPCCode, TotalDollarSales = tds FROM s WHERE rn <= 5 ORDER BY StoreID, TotalDollarSales DESC;
위 내용은 단일 SQL 쿼리를 사용하여 매장당 상위 N개 판매 항목을 검색하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!