2017-01-25 2 views
1

Dieser Code:Sortierung Ergebnisse der Aggregatfunktion

SELECT ProductID, COUNT(ProductID) AS Occurrences 
FROM OrderDetails 
Group By ProductID; 

mein Versuch, die productIds zu nehmen, die in einer Tabelle Orderdetails auftreten, zählen, wie viele Aufträge, dass das Produkt enthält, und dann sortieren die ProduktID absteigend zählen. In Laien ausgedrückt, möchte ich zeigen, welche Produkte am beliebtesten sind, indem man ihre Anzahl in absteigender Reihenfolge anzeigt, so dass die Produkte, die am meisten "verkauft" haben, oben erscheinen. Das Problem, das ich habe, ist, dass, als ich versuchte, "Group by" mit "Vorkommen" zu verwenden, es einen Fehler ausgab, dass ich Aggregatfunktionen mit Gruppe nicht verwenden kann. Wenn ich nach ProductID gruppiere, zeigt es die Zählungen überall an, was nicht die nützlichste Art ist, die Information darzustellen.

Antwort

1

Diese sollte Arbeit:

SELECT ProductID, COUNT(ProductID) AS Occurrences 
FROM OrderDetails 
Group By ProductID 
Order By COUNT(ProductID) DESC; 
1

Was Sie verwenden möchten wirklich, wenn Sie die Popularität der Produkte wissen wollen, ist SUM nicht COUNT:

SELECT ProductID, 
     sum(Qty) AS Occurrences 
FROM OrderDetails 
Group By ProductID 
Order By sum(Qty) DESC; 

COUNT finden Sie interessante geben Ergebnisse. Oder Sie könnten Anzahl der Aufträge wie folgt verwenden:

select ProductID 
     count(distinct OrderNumber) as NumberOfOrders 
from OrderDetails 
group by ProductID 
order by count(distinct OrderNumber) desc; 
+0

Das einzige, was mich verwirrt war die Verwendung von "Qty". Ich weiß nicht, ob Sie es als Platzhalter für etwas anderes oder was verwenden, aber in meinem Code würde ich ProductID verwenden, weil ich die Anzahl der Male, die jedes Produkt in der OrderDetail-Tabelle erscheint, zählen (oder summieren) möchte. –

+0

@TophHughes - Ich habe "Qty" verwendet, weil ich nicht sicher bin, wie die Spalte in Ihrer Tabelle heißt, aber in der Regel würden Sie eine Quantity Ordered-Spalte in einer "OrderDetails" -Tabelle haben. Betrachten Sie den Fall, in dem Produkt A 10 Mal bestellt wird und Produkt B 5 Mal bestellt wird und eines der Produkt B Bestellungen für eine Menge von 12 ist. Ich würde Produkt B als beliebter ansehen. – Anand

Verwandte Themen