Heim > Datenbank > MySQL-Tutorial > Wie finde ich mit einer einzigen SQL-Abfrage die Top-N-Artikel, die in jedem Geschäft verkauft werden?

Wie finde ich mit einer einzigen SQL-Abfrage die Top-N-Artikel, die in jedem Geschäft verkauft werden?

Mary-Kate Olsen
Freigeben: 2024-12-29 09:48:11
Original
737 Leute haben es durchsucht

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

SQL-Abfrage zur Ermittlung der Top-N-Artikel für jedes Geschäft

Um die Top-N-Artikel, die für jedes Geschäft verkauft werden, in einer einzigen Abfrage zu finden, haben wir kann eine Kombination der Funktionen GROUP BY und ROW_NUMBER() nutzen. Hier ist eine umfassende Lösung:

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;
Nach dem Login kopieren

Verstehen der Abfrage

  • Die Unterabfrage s2 berechnet den Gesamtumsatz (tds) für jeden Artikel (UPCCode) innerhalb jedes Artikels store (StoreID).
  • Die äußere Abfrage erstellt mithilfe einer WITH-Anweisung einen allgemeinen Tabellenausdruck (CTE) mit dem Namen S. Innerhalb dieses CTE wird ROW_NUMBER() angewendet, um die Artikel in jedem Geschäft basierend auf dem Gesamtumsatz in absteigender Reihenfolge (DESC) zu ordnen.
  • Die letzte Abfrage wählt die Top-5-Artikel aus (wobei rn kleiner oder gleich ist). 5) Sortieren der Ergebnisse für jede Filiale nach Filial-ID und Gesamtumsatz in absteigender Reihenfolge.

Dieser Ansatz ruft effizient die meistverkauften Artikel für jede Filiale auf einmal ab SQL-Anweisung, wodurch die Notwendigkeit mehrerer Abfragen oder ineffizienter UNION-Operationen vermieden wird.

Das obige ist der detaillierte Inhalt vonWie finde ich mit einer einzigen SQL-Abfrage die Top-N-Artikel, die in jedem Geschäft verkauft werden?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage