Ich bin recht neu in SQL, aber nachdem ich das Internet nach einer Antwort darauf durchsucht habe, kann ich meine COUNT- und EXCEPT-Anweisungen immer noch nicht finden, um auszuwählen, was ich will.sqlite3: COUNT & EXCEPT funktioniert nicht wie erwartet
Meine Datenbank:
sqlite> CREATE TABLE Football(Team TEXT, Player TEXT, Age INTEGER, primary key(Team, Player));
sqlite> .separator ,
sqlite> .import databaseTest Football
sqlite> .headers on
sqlite> .mode col
sqlite> SELECT Team, Player, Age FROM Football ORDER BY Team;
Team Player Age
---------- ---------- ----------
Arsenal Cech 38
Arsenal Giroud 29
Arsenal Sanchez 28
Arsenal Walcott 27
Chelsea Costa 29
Chelsea Courtois 25
Chelsea Hazard 26
Chelsea Willian 26
Liverpool Can 23
Liverpool Coutinho 24
Liverpool Wjinaldum 25
Liverpool Woodburn 17
Manchester Aguero 29
Manchester Jesus 19
Manchester Silva 28
Manchester Toure 34
Manchester De Gea 26
Manchester Felliani 29
Manchester Rooney 32
Manchester Schweinste 35
Tottenham Delle Ali 22
Tottenham Kane 24
Tottenham Rose 24
Tottenham Vertonghen 27
Was möchte ich tun, ist SELECT
die COUNT
von Teams, die ein Spieler im Alter von 30 haben nicht so die select-Anweisung sollte 3 (Chelsea, Liverpool sein, Tottenham).
Dies ist die Aussage, die ich versucht habe und funktionieren würde, angenommen:
sqlite> SELECT COUNT(DISTINCT Team) FROM Football
...> EXCEPT
...> SELECT COUNT(DISTINCT Team) FROM Football WHERE Age > 30;
COUNT(DISTINCT Team)
--------------------
6
Aber wie Sie es wieder sehen ‚6‘. Was mache ich falsch und wie kann ich das richtige Ergebnis bekommen?
Vielen Dank! Das macht mit HAVING viel mehr Sinn. Ich hatte vorher mit Hilfe von HAVING angeschaut, aber bei der Online-Suche konnte ich keine besonders gute Information finden. Danke noch einmal. – JLW