У меня есть простой кусок кода SQL, где я пытаюсь получить среднемесячные числа.Но проблема, с которой я сталкиваюсь, состоит в том, что если любое число в любом заданном месяце равно 0, то среднее возвращаемое значение равно 0 или если есть какие-либо строки, которых не существует в каком-либо конкретном месяце, тогда значения для этого месяца вообще не возвращаются.Надеюсь, кто-нибудь может дать мне некоторое представление о том, что я делаю неправильно.
GROUP BY 1 = a.metric и GROUP BY 2 = a.report_dt в подзапросе
Я попытался вставитьотсутствующие строки со значением 0, но, как я уже сказал, он также возвращает усредненное значение как 0.
SELECT a.report_dt - INTERVAL 1 DAY AS 'Date',
a.metric,
a.num
FROM (SELECT *
FROM reporting.tbl_bo_daily_levels b
WHERE b.report_dt = reporting.func_first_day(b.report_dt)
AND b.report_dt > DATE_SUB(NOW(), INTERVAL 12 MONTH)
GROUP BY 1,2
)a;
Мои ожидаемые результаты - получить средние числа каждого месяца, даже если нет-существующие строки в указанном диапазоне дат или даже если там нули в качестве значений.