Die Abfrage, die ich beantworten möchte, ist "Wie viele Verkäufe über oder gleich 60 hat jede Person gemacht?"SQL - Gruppierung COUNT Ergebnisse
Meine Tabelle (Umsatz $):
SaleID name salevalue
1 Steve 100
2 John 50
3 Ellen 25
4 Steve 100
5 Mary 60
6 Mary 80
7 John 70
8 Mary 55
9 Steve 65
10 Ellen 120
11 Ellen 30
12 Ellen 40
13 John 40
14 Mary 60
15 Steve 50
Mein Code ist:
select name,
COUNT(*) as 'sales above 60'
from Sales$
group by salevalue, name
having salevalue >= 60;
Welche gibt:
Ellen 1
John 1
Mary 2
Mary 1
Steve 1
Steve 2
Die Informationen in dieser Mary & Steve korrekt ist beide haben 3 Verkäufe, aber ich werde vom HAVING-Befehl gezwungen, sie zu gruppieren.
Irgendwelche Ideen? Ich bin mir sicher, dass ich gerade falsch abgebogen bin.
Entfernen 'salevalue' aus Ihrem GROUP BY. –
Das Entfernen von 'salevalue' aus GROUP BY ergibt einen Fehler 'Msg 8121, Ebene 16, Status 1, Zeile 5 Die Spalte' Sales $ .salevalue 'ist in der HAVING-Klausel ungültig, da sie weder in einer Aggregatfunktion noch in der GROUP enthalten ist BY-Klausel. Der Verkaufswert muss enthalten sein, um die "HAVING" -Anweisung zu beschwichtigen. – PJC83
Ja, aber was willst du mit dieser HAVING-Klausel erreichen? – jarlh