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;
Verstehen der Abfrage
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!