基本的に、私はかなり新しいSQLです。楽しく興味深いです。基本的に、複数のゲームセッションを持つユーザーごとにuserIdと平均gametimeを選択しようとしています。これは私の下のテーブルです:複数のインスタンスを持つユーザーの平均値が表示されない
id | userId |gameTime |
________________________
1 | 1 | 10 |
2 | 2 | 10 |
3 | 3 | 15 |
4 | 1 | 10 |
5 | 2 | 25 |
_________________________
CREATE TABLE game_session(
id INTEGER PRIMARY KEY,
userId INTEGER NOT NULL,
gameTime DECIMAL NOT NULL);
INSERT INTO game_session VALUES
(1, 1, 10),
(2, 2, 10),
(3, 3, 15),
(4, 1, 10),
(5, 2, 25);
私は、userIDのすべてのインスタンスとその合計平均時間を表示したいだけです。私は最後にカウント行を表示したくありません。
は、私は私のスクリプトを書きましたが、それは COUNT(ユーザーID)を使用せずにテーブルが表示されておらず、それも例えば一回、多くて1以上のためのユーザーIDを示しています!
これは私のスクリプトです:
私は間違っているつもりですSELECT userID, AVG(gameTime)
FROM game_session
WHERE ((SELECT COUNT(userID) FROM game_session) > 1)
GROUP BY userID
?
ヒント: 'HAVING'を集計にフィルタリングするため。 –
'WHERE'は事前集約フィルタリングのためのものであり、' HAVING'は集約後のものです。 –
@GordonLinoff申し訳ありませんが、私はあなたと結婚していません。あなたは私を助けてください、多くを意味するでしょう –