私はかなり新しいSQLですが、これに対する答えをインターネットで検索しましたが、私が望むものを選択するためにCOUNTとEXCEPTステートメントを取得できません。sqlite3:COUNT&EXCEPTが期待どおりに動作しない
マイデータベース:
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
私がやりたいことはあるSELECT
30歳以上のプレーヤーを持っていないチームのCOUNT
だからselect文があるべき3(チェルシー、リバプール、トッテナム)。
これは、私が試したと仮定してきた文が働くだろうです:
sqlite> SELECT COUNT(DISTINCT Team) FROM Football
...> EXCEPT
...> SELECT COUNT(DISTINCT Team) FROM Football WHERE Age > 30;
COUNT(DISTINCT Team)
--------------------
6
しかし、あなたはそれを返し見ることができるように「6」。私は間違って何をしていますか、どうすれば正しい結果を得ることができますか?
ありがとうございました! HAVINGを使用すると、実際にはもっと意味があります。以前はHAVINGを使って調べていましたが、オンラインで検索することでそれに関する特定の良い情報を見つけることはできませんでした。再度、感謝します。 – JLW