Trouver les n top n Stockez dans une seule requête SQL.
Solution:
En utilisant la syntaxe de la table commune (CTE), nous pouvons créer un tableau temporaire nommé 'S' S pour classer les éléments supérieurs dans chaque magasin en fonction des ventes de dollars totaux. Par la suite, nous pouvons sélectionner les 5 premiers éléments pour chaque magasin à l'aide d'un filtre de numéro de ligne.; avec s comme ( Sélectionnez StoreId, UpCcode, TDS, RN = ROW_NUMBER () Over (partition by Storetid Order by TDS DESC) DEPUIS ( Sélectionnez StoreId, UpCcode, TDS = SUM (TotalDollarsales) Des ventes Groupe par magasin, upccode ) Comme s2 ) Sélectionnez StoreId, UpCcode, TotalDollarsALes = TDS De S Où rn Explication:
;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 rnLa requête extérieure sélectionne les 5 meilleurs éléments de la CTE pour chaque magasin, commandé par TotalDollarsales dans l'ordre descendant.
Clause de non-responsabilité: Toutes les ressources fournies proviennent en partie d'Internet. En cas de violation de vos droits d'auteur ou d'autres droits et intérêts, veuillez expliquer les raisons détaillées et fournir une preuve du droit d'auteur ou des droits et intérêts, puis l'envoyer à l'adresse e-mail : [email protected]. Nous nous en occuperons pour vous dans les plus brefs délais.
Copyright© 2022 湘ICP备2022001581号-3