Не отображаются средние значения для пользователей с более чем одним экземпляром

0

В принципе, я довольно новичок в 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

Где я иду не так?

Теги:

1 ответ

1
Лучший ответ

Я считаю, что вы ищете, having п.

Попробуйте это:

select userID, avg(gameTime)
from game_session
group by userID
having count(userID) > 1;
  • 0
    Работал как шарм! СПАСИБО ДРУГ. Куда я пошел не так? И что означает GROUP BY
  • 0
    Вы использовали WHERE вместо того, чтобы HAVING . Узнайте больше о GROUP BY здесь
Показать ещё 2 комментария

Ещё вопросы

Сообщество Overcoder
Наверх
Меню