Моя голова дымится от (глупых) попыток использовать JOIN
, WITH
и GROUP BY
, чтобы придумать решение для моего довольно распространенного сценария - я просто не могу понять это. Позвольте мне сразу бросить вам пример:
У меня есть две таблицы (ColorCount и Colorname):
ColorCount:
ColorID Count Date
1 42 2010-09-07
1 1 2010-09-08
2 22 2010-09-14
1 20 2010-10-10
3 4 2010-10-14
ColorName:
ColorID Name
1 Purple
2 Green
3 Yellow
4 Red
Теперь все, что я хочу, это соединить таблицу ColorName с таблицей ColorCount, просуммировать все подсчеты цветов за месяц и вычислить процент каждого подсчета от месячного итога. Таблицы лучше слов:
Output:
Month Color Count Percentage
09 Purple 43 66%
09 Green 22 33%
09 Yellow 0 0%
09 Red 0 0%
10 Purple 20 83%
10 Green 0 0%
10 Yellow 4 16%
10 Red 0 0%
(Обратите внимание, что общее количество месяцев 09
равно 65
, поэтому 66%
соответствует Purple
, а также 0
– несуществующим цветам):
Я надеюсь, что кто-то мечтает в SQL, и это простая задача...