Я пытаюсь написать запрос MySQL, чтобы получить среднее значение в месяц за все месяцы между датами. Моя идея заключается в следующем:Выберите все месяцы в пределах заданного промежутка времени, в том числе с 0 значениями
запросов, что-то вроде
SELECT AVG(value1) as avg_value_1,
AVG(value2) as avg_value_2,
MONTH(save_date) as month,
YEAR(save_date) as year
FROM myTable
WHERE save_date BETWEEN '2009-01-01' AND '2009-07-01'
GROUP BY YEAR(save_date), MONTH(save_date)
avg_value_1 | avg_value_2 | month | year
5 | 4 | 1 | 2009
2 | 1 | 2 | 2009
7 | 5 | 3 | 2009
0 | 0 | 4 | 2009 <---
6 | 5 | 5 | 2009
3 | 6 | 6 | 2009
Вы видите, значения не были введены в апреле 2009 года, но я хочу, чтобы показать, как 0, 0 значение выпуска продукции. Любые идеи о том, как достичь этого? Это можно сделать в MySQL?
Спасибо за ваш ответ, но мне действительно нужна таблица, содержащая все возможные даты? Это не самый простой способ! :) –
Трудно вернуть значения, которых не существует. :) –
Хорошая точка Lieven, но MySQL знает обо всех датах наизусть, при использовании обычных GetDate() и DateAdd() и т. Д. Я просто чувствую, что должен быть способ их извлечения! –