> 데이터 베이스 > MySQL 튜토리얼 > 단일 SQL 쿼리를 사용하여 각 매장에서 판매된 상위 N개 품목을 찾는 방법은 무엇입니까?

단일 SQL 쿼리를 사용하여 각 매장에서 판매된 상위 N개 품목을 찾는 방법은 무엇입니까?

Mary-Kate Olsen
풀어 주다: 2024-12-29 09:48:11
원래의
737명이 탐색했습니다.

How to Find the Top N Items Sold at Each Store Using a Single SQL Query?

각 매장의 상위 N개 품목을 결정하는 SQL 쿼리

단일 쿼리로 각 매장에서 판매된 상위 N개 품목을 찾으려면 GROUP BY 및 ROW_NUMBER() 함수의 조합을 활용할 수 있습니다. 포괄적인 솔루션은 다음과 같습니다.

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;
로그인 후 복사

쿼리 이해

  • 하위 쿼리 s2는 각 항목(UPCCode)에 대한 총 판매량(tds)을 계산합니다. store(StoreID).
  • WITH 문을 사용하는 외부 쿼리는 s라는 공통 테이블 표현식(CTE)입니다. 이 CTE 내에서 ROW_NUMBER()는 전체 판매량을 기준으로 내림차순(DESC)으로 각 매장 내의 항목 순위를 지정하는 데 적용됩니다.
  • 마지막 쿼리는 상위 5개 항목을 선택합니다(여기서 rn은 다음보다 작거나 같음). 5) 각 매장에 대해 매장 ID 및 총 판매량을 기준으로 결과를 내림차순으로 정렬합니다.

이러한 접근 방식은 해당 매장에서 가장 잘 팔리는 품목을 효율적으로 검색합니다. 각 저장을 단일 SQL 문에 저장하므로 여러 쿼리나 비효율적인 UNION 작업이 필요하지 않습니다.

위 내용은 단일 SQL 쿼리를 사용하여 각 매장에서 판매된 상위 N개 품목을 찾는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
저자별 최신 기사
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿