Я уже задал аналогичный вопрос, но, похоже, я все еще не могу его обогнуть. У меня есть столбец device_create_date на моих базах данных SQLОтсутствующие отсутствующие значения в диапазоне mysql
2015-07-14 12:35:19
2015-07-15 12:45:37
2015-07-15 12:45:37
2015-07-16 12:35:37
2015-08-14 10:35:21
2015-08-14 12:15:36
Я агрегационный эти значения даты в неделях, но есть пропущенные значения в период между неделей, где я хочу, чтобы эти ценности просто равен 0, так что я могу конферансье~d их с другими метриками на листе excel. Я создал фиктивную таблицу «дата», чтобы присоединиться к значениям с, так что выбор возвращает 0 в течение недель, для которых нет значений.
Вот запрос я использовал,
select date.year, week(device.device_create_date), count(*)
from device
join date
on date.week_of_year=week(device.device_create_date)
where device.id_customer = 1
group by device.year, date.WEEK_OF_YEAR
order by device.year, date.week_of_year;
Вот что я вернулся,
2010 26 7252
2010 31 3108
2010 45 7203
2010 1 9324
2010 2 7252
2010 3 2072
Вот что я хочу, чтобы дать мне обратно;
2010 1 9324
2010 2 7252
2010 3 2072
2010 4 0
2010 5 0
2010 6 0
etc
кстати, кажется, эти значения не должны быть соответствие счетчика на базу данных, так что я вроде знаю, что я делаю что-то совершенно неправильно, но я не силен в этом, так что любая помощь и направление будет значительно оценили.
Благодарим вас заранее!
Нам нужна структура 'device'. –
use right join в этом случае, а не внутреннее соединение. Плюс, если у вас многолетние данные, вам нужно использовать год и неделю в таблице даты и присоединиться к обоим. – Shadow