В принципе, я довольно новичок в SQL, и я играю с ним. Это интересно и интересно, и в основном я пытаюсь выбрать userId и среднее время игры для каждого пользователя, у которого более одного сеанса игры. Это моя таблица ниже:
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 более одного раза и его общее среднее время. Я не хочу отображать строку счетчика в конце.
Я написал свой скрипт, но он не отображает таблицу БЕЗ ПОЧТЫ (userID) И он показывает идентификатор пользователя даже на один экземпляр экземпляра, но не более 1!
Это мой сценарий:
SELECT userID, AVG(gameTime)
FROM game_session
WHERE ((SELECT COUNT(userID) FROM game_session) > 1)
GROUP BY userID
Где я иду не так?
Я считаю, что вы ищете, having
п.
Попробуйте это:
select userID, avg(gameTime)
from game_session
group by userID
having count(userID) > 1;
WHERE
вместо того, чтобыHAVING
. Узнайте больше оGROUP BY
здесь