Trouver les N articles les plus vendus pour chaque groupe à l'aide de SQL
Énoncé du problème :
Énoncé du problème :
Donné un tableau avec les enregistrements de ventes, y compris le code UPC de chaque article vendu, la date de vente, l'identifiant du magasin et le total des ventes en dollars, l'objectif est de récupérer le Top 5 des articles vendus pour chaque magasin dans une seule requête SQL.
Solution :
;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;
À l'aide de la syntaxe Common Table Expression (CTE), nous pouvons créer une table temporaire nommée « » pour classer les meilleurs articles dans chaque magasin en fonction des ventes totales en dollars. Par la suite, nous pouvons sélectionner les 5 meilleurs articles pour chaque magasin à l'aide d'un filtre de numéro de ligne.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!