Maison > base de données > tutoriel mysql > Comment trouver les N articles les plus vendus dans chaque magasin à l'aide d'une seule requête SQL ?

Comment trouver les N articles les plus vendus dans chaque magasin à l'aide d'une seule requête SQL ?

Mary-Kate Olsen
Libérer: 2024-12-29 09:48:11
original
737 Les gens l'ont consulté

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

Requête SQL pour déterminer les N articles les plus vendus pour chaque magasin

Pour trouver les N articles les plus vendus pour chaque magasin en une seule requête, nous peut exploiter une combinaison des fonctions GROUP BY et ROW_NUMBER(). Voici une solution complète :

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;
Copier après la connexion

Comprendre la requête

  • La sous-requête s2 calcule les ventes totales (tds) pour chaque article (UPCCode) dans chaque store (StoreID).
  • La requête externe, à l'aide d'une instruction WITH, crée une expression de table commune (CTE) nommée s. Au sein de ce CTE, ROW_NUMBER() est appliqué pour classer les articles dans chaque magasin en fonction des ventes totales par ordre décroissant (DESC).
  • La requête finale sélectionne les 5 meilleurs articles (où rn est inférieur ou égal à 5) pour chaque magasin, trier les résultats par identifiant de magasin et ventes totales par ordre décroissant.

Cette approche récupère efficacement les articles les plus vendus pour chaque magasin dans un instruction SQL unique, évitant le besoin de plusieurs requêtes ou d'opérations UNION inefficaces.

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!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal