MySQL для заполнения пропущенных дат при использовании GROUP BY DATE (table.timestamp) без объединения во временную таблицу - PullRequest
1 голос
/ 16 мая 2010

после прочтения пары похожих Qs / Поскольку я не совсем нашел решение, которое ищу. Данные таблицы, которые у меня есть, это GROUP BY DATE (временная метка), и возвращается счетчик, пример результата:

[timestamp] => 2010-05-12 20:18:36
[count] => 10


[timestamp] => 2010-05-14 10:10:10
[count] => 8

Не используя временную таблицу или таблицу календаря, есть ли способ заполнить эти пропущенные даты? так что с той же таблицей данные вернутся:

[timestamp] => 2010-05-12 20:18:36
[count] => 10


/**
 * I would like to have this row added:
 */
[timestamp] => 2010-05-13 00:00:00
[count] => 0

[timestamp] => 2010-05-14 10:10:10
[count] => 8

Спасибо!

Ответы [ 3 ]

0 голосов
/ 24 мая 2010

Я не нашел точное решение, которое искал, но я думаю, что нашел метод, который работает достаточно для моих нужд. Я создал таблицу трафика, где первый посетитель дня будет запускать вставку строки для дня, и теперь я могу присоединиться к этой таблице, чтобы получить ежедневную запись чего угодно. Единственная проблема, однако, заключается в том, что если в течение дня не будет трафика, эта дата не будет отображаться в таблице. Эту проблему можно решить, запустив ежедневный хрон для вставки новой строки.

0 голосов
/ 23 марта 2011

Вы должны создать таблицу учета (только 1 столбец: дата) и заполнить ее заранее. Вы можете запустить скрипт cron на 1 год и запускать его раз в год.

0 голосов
/ 16 мая 2010

Лучший способ решить эту проблему - найти недостающие результаты на стороне клиента и добавить их при представлении результатов.

...