#sql #group-by #syntax-error #northwind
#sql #группировка по #синтаксическая ошибка #northwind
Вопрос:
Я запустил запрос к базе данных Northwind Products Table
, как показано ниже
select * from Northwind.dbo.Products GROUP BY CategoryID
и я столкнулся с ошибкой. Я уверен, что вы также столкнетесь с той же ошибкой. Итак, какое правильное утверждение мне нужно выполнить, чтобы сгруппировать все продукты по их идентификаторам категорий.
редактировать: это действительно помогло многое понять
Ответ №1:
Вам нужно использовать агрегатную функцию, а затем сгруппировать по любым неагрегированным столбцам.
Я рекомендую ознакомиться с GROUP BY.
Комментарии:
1. Абсолютно нет. Вы не сказали нам, что вы хотите выбрать, поэтому я не могу предоставить вам «точный sql». Вам нужно понимать технологию, если вы надеетесь ее использовать, а не просить людей делать это за вас. Я рассказал вам, почему вы получаете ошибку и как ее исправить. Продолжайте и учитесь!!!
Ответ №2:
Если вы используете GROUP BY
в запросе, все элементы в вашем SELECT
операторе должны либо содержаться как часть агрегатной функции, например Sum()
, или Count()
, иначе они также должны быть включены в GROUP BY
предложение.
Поскольку вы используете SELECT *
, это эквивалентно перечислению ВСЕХ столбцов в вашем SELECT
.
Поэтому либо перечислите их все в GROUP BY
too, используйте агрегирующие функции для остальных, где это возможно, или выберите только CategoryID
.