Я создаю (в Rails) приложение для очистки данных NBA (в основном для моего собственного назидания и инструмента обучения). Я начал с postgresql с нуля, потому что это имеет смысл, если я собираюсь принять его. Схема базы данных настроена точно так, как я хочу, here.Как рассчитать среднее значение, когда числа сгруппированы
экземпляры участников основаны на концепции TEAM Статистические примеры основаны на концепции PLAYER, и поэтому многие экземпляры статистики составляют «итоговые значения» для участника.
Следующий запрос:
Select SUM(steals) from statistics
INNER JOIN participants on statistics.participant_id = participants.id
INNER JOIN teams on participants.team_id = teams.id
WHERE teams.id = 15
GROUP BY statistics.participant_id;
дает (в Psql терминале приложение)
sum
-----
8
7
5
7
6
7
10
6
7
6
7
5
9
11
4
7
8
Как написать запрос SQL, чтобы вычислить среднее значение на основе этих 17 строк
(изменить, чтобы упростить запрос и задать только один вопрос)
@MageeWorld, вы близки к тому, что вы хотите. Попробуйте и посмотрите на функции 'Aggrigate', такие как' AVG() 'для этого. –
Используйте подзадачу: 'SELECT ... FROM (SELECT ... GROUP BY ...) s GROUP BY ...' –
@CoderofCode Я знаю об агрегатных функциях (хотя большая часть моего опыта в mysql), но я не знаю, как обернуть агрегированный запрос внутри в среднем запросе – MageeWorld