Путаница в SQL AVG (), базовый SQL

Часть моего задания гласит это 6. Отобразите идентификатор студента и средний балл для каждого студента.

Вот что я придумал

SELECT student_id, AVG(score) FROM scores;

Но он показывает только средний балл первого ученика. Что мне нужно изменить?

Вам не хватает GROUP BY.

Ken White 14.12.2018 03:16

Вы должны добавить GROUP_BY для выполнения агрегированной функции, такой как AVG(). SELECT student_id, AVG(score) FROM scores GROUP BY student_id;

hgb123 14.12.2018 03:25

«эта 6» - что это значит?

danblack 14.12.2018 03:32

Спасибо! после "этого" должна стоять запятая, ха-ха

user10788762 14.12.2018 03:46

Если вы используете групповую функцию в операторе, не содержащем предложения GROUP BY, это эквивалентно группировке по всем строкам. - dev.mysql.com/doc/refman/8.0/en/group-by-functions.html

P.Salmon 14.12.2018 08:47
Освоение архитектуры микросервисов с Laravel: Лучшие практики, преимущества и советы для разработчиков
Освоение архитектуры микросервисов с Laravel: Лучшие практики, преимущества и советы для разработчиков
В последние годы архитектура микросервисов приобрела популярность как способ построения масштабируемых и гибких приложений. Laravel , популярный PHP...
Как построить CRUD-приложение в Laravel
Как построить CRUD-приложение в Laravel
Laravel - это популярный PHP-фреймворк, который позволяет быстро и легко создавать веб-приложения. Одной из наиболее распространенных задач в...
Освоение PHP и управление базами данных: Создание собственной СУБД - часть II
Освоение PHP и управление базами данных: Создание собственной СУБД - часть II
В предыдущем посте мы создали функциональность вставки и чтения для нашей динамической СУБД. В этом посте мы собираемся реализовать функции обновления...
Документирование API с помощью Swagger на Springboot
Документирование API с помощью Swagger на Springboot
В предыдущей статье мы уже узнали, как создать Rest API с помощью Springboot и MySql .
Роли и разрешения пользователей без пакета Laravel 9
Роли и разрешения пользователей без пакета Laravel 9
Этот пост изначально был опубликован на techsolutionstuff.com .
Как установить LAMP Stack - Security 5/5 на виртуальную машину Azure Linux VM
Как установить LAMP Stack - Security 5/5 на виртуальную машину Azure Linux VM
В предыдущей статье мы завершили установку базы данных, для тех, кто не знает.
0
5
34
2

Ответы 2

Вам нужен оператор groupby.

SELECT student_id, AVG(score) FROM (table_name) GROUPBY student_id

Может, стол такой,

|class_id|class_name|student_id|student_name|score|

Вы должны подробно описать свою таблицу. В любом случае, я думаю, что GROUPBY - это все, что вам нужно в этом вопросе.

GROUPBY -> GROUP BY и не помещайте table_name в () (сбивает с толку).
danblack 14.12.2018 03:31

ты прав, моя ошибка. Я не знаю его имени стола, поэтому поставил его здесь. Может, это сбивает с толку.

jcyan 14.12.2018 03:36

в вопросе имя scores. Но в целом абстрактное имя_таблицы можно правильно интерпретировать.

danblack 14.12.2018 03:38

Пожалуйста, попробуйте этот запрос с GROUP BY

SELECT student_id, AVG(score) FROM scores GROUP BY student_id

Другие вопросы по теме