ホームページ >データベース >mysql チュートリアル >単一の SQL クエリを使用して店舗ごとの売上上位 N 個のアイテムを取得するにはどうすればよいですか?
グループごとに販売された上位 N 個のアイテムを取得する SQL クエリ
この質問では、ユーザーは、販売された上位 5 個のアイテムを取得する SQL クエリを求めています単一のクエリで各ストアのアイテムを取得できます。提供されたテーブル Sales には、UPCCode、SaleDate、StoreId、TotalDollarSales などの列が含まれています。
目的の結果を達成するために、単一の SQL クエリ内でサブクエリとパーティショニングの組み合わせを利用できます。詳細な内訳は次のとおりです:
各 UPCCode の売上の合計を計算するサブクエリ:
分割された結果に行番号を追加:
各ストアの上位 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 中国語 Web サイトの他の関連記事を参照してください。