2013-04-10 3 views
1

Я пытаюсь получить счет с посещений на прошлой неделе.Запрос Mysql, чтобы получить счет за последнюю неделю

До сих пор, у меня есть это работает:

SELECT FROM_UNIXTIME(login),COUNT(*) 
FROM users 
WHERE FROM_UNIXTIME(login) >= (CURDATE() - INTERVAL DAYOFWEEK(CURDATE())+6 DAY) 
GROUP BY DAYOFWEEK(FROM_UNIXTIME(login)); 

Результаты:

+----------------------+----------+ 
| FROM_UNIXTIME(login) | COUNT(*) | 
+----------------------+----------+ 
| 2013-04-08 12:49:04 |  1 | 
| 2013-04-10 17:29:21 |  2 | 
| 2013-04-05 21:27:00 |  1 | 
+----------------------+----------+ 

Проблемы:

-Таблица не упорядочено по дате;

-Я хотел бы показать все 7 строк, даже если значение count = '0'.

Как я могу это исправить? Заранее спасибо!

[UPDATE]

Сортировать по дате решена:

ORDER BY FROM_UNIXTIME(login); 

Просто нужно, чтобы показать все 7 рядов неделю!

+0

Я не думаю, что это возможно, чтобы получить строку, если count равно 0 или, по крайней мере, не с очень сложным запросом (если возможно). Count - результат выбора, и если нет записи для определенной даты, просто нет записи для отображения счета для –

+0

. Вам нужно использовать опцию 'order by' и' limit' – TNK

+0

@TNK, спасибо! заказ сейчас работает. Только нужно выяснить, как показать все 7 строк всей недели ... –

ответ

0

Вы можете использовать запрос из этого ответа, который может генерировать список дат, а затем оставили присоединиться запрос против него:

generate days from date range

Смежные вопросы