#sql #database #tsql
Вопрос:
Я выполнил запрос, используя предложение join, которое генерирует таблицу следующим образом:
Name, Colour, Date
John, Blue, 01/01/2021
Betty, Green, 01/01/2021
Bob, Blue, 01/01/2021
Mark, Green, 03/02/2021
Jane, Red, 03/02/2021
Я хочу создать еще один запрос, который подсчитывает, сколько раз цвет встречается за определенную дату. Таким образом, результат вернет что-то вроде следующего:
Colour, ColourTotal, Date
Blue, 2, 01/01/2021
Green, 1, 01/01/2021
Green, 1, 03/02/2021
Red, 1, 03/02/2021
Я не могу этого понять. Когда я пытаюсь вложить запросы SELECT, я продолжаю получать сообщение об ошибке агрегирования. У меня нет опыта работы с SQL, поэтому я был бы признателен за любую помощь.
Комментарии:
1. Подсказка:
GROUP BY
.2. Можете ли вы поделиться своим первоначальным запросом? это было бы полезно, чтобы дать вам более точное предложение.
Ответ №1:
Вы должны агрегировать только по внешнему запросу, как это:
SELECT Colour, Date, COUNT(*) AS ColourTotal
FROM
(
SELECT ...
) AS ColoursPerDate
GROUP BY Colour, Date
Комментарии:
1. Потрясающе! Спасибо.
Ответ №2:
SELECT color,
date,
Count(*) AS colorTotal
FROM table
GROUP BY color,
date