|
|
|
Выборка статистики за интервал с нулевыми значениями.
|
|||
|---|---|---|---|
|
#18+
Всем привет. Столкнулся с вопросом выборки статистики. Пример: нужно собрать почасовую статистику за последние 24 часа. Вот мой запрос: Код: sql 1. 2. 3. 4. 5. 6. 7. 8. на выходе имею почасовую статистику за последние 24 часа: hourdaycount11242132431724162527251825110251 Похоже на правду. Но! Суда нужно добавить не достающие часы с нулевым количеством. Хотелось бы видеть на выходе: hourdaycount11242122401324314240152401624017241182401924020240212402224023240025012502250325042505250625072518250925010251 Может кто-то сталкивался, или знает в какую сторону смотреть? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.09.2015, 11:10:06 |
|
||
|
Выборка статистики за интервал с нулевыми значениями.
|
|||
|---|---|---|---|
|
#18+
Сервер не умеет давать данные, которых у него нет. Нужна опорная таблица часов, возможно, создаваемая динамически. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.09.2015, 11:15:50 |
|
||
|
Выборка статистики за интервал с нулевыми значениями.
|
|||
|---|---|---|---|
|
#18+
опорная таблица (24 строки) +left join .... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.09.2015, 11:17:26 |
|
||
|
Выборка статистики за интервал с нулевыми значениями.
|
|||
|---|---|---|---|
|
#18+
peektoseen, если эта таблица не будет использоваться в дальнейшем в mysql, а будет использована только в программном коде, то есть смысл вместо опорной таблице в базе использовать опорный массив на 24 элемента с нулями и сливать этот массив с полученным массивом из базы. Так будет существенно проще. Опорную таблицу в базе есть смысл создавать, если вы затем этот результат хотите ещё как-то куда-то в запрос подставить... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.09.2015, 11:20:50 |
|
||
|
Выборка статистики за интервал с нулевыми значениями.
|
|||
|---|---|---|---|
|
#18+
существенно проще создать тех.таблицу seq1000 (id INT) заполнить ее значениями 1-1000 и использовать в дальнейшем SELECT id FROM seq1000 LIMIT 24; и т.д. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.09.2015, 11:48:27 |
|
||
|
Выборка статистики за интервал с нулевыми значениями.
|
|||
|---|---|---|---|
|
#18+
Спасибо всем за ответы. Да, про опорную таблицу я уже думал, но не пойму как её связать еще и с днем. У меня же не просто часы, а еще и день. Из опорной таблицы я смогу получить hour, но day нет. Код: sql 1. 2. 3. 4. 5. 6. 7. 8. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.09.2015, 12:33:21 |
|
||
|
Выборка статистики за интервал с нулевыми значениями.
|
|||
|---|---|---|---|
|
#18+
peektoseenИз опорной таблицы я смогу получить hour, но day нет.Можете. Используйте ее два раза с разными алиасами. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.09.2015, 12:35:07 |
|
||
|
Выборка статистики за интервал с нулевыми значениями.
|
|||
|---|---|---|---|
|
#18+
miksoft, т.е. вы предлагаете для дней использовать ту же таблицу целых чисел, только с 1 по 30? А как быть с разным количеством дней в месяце? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.09.2015, 12:35:13 |
|
||
|
Выборка статистики за интервал с нулевыми значениями.
|
|||
|---|---|---|---|
|
#18+
peektoseenА как быть с разным количеством дней в месяце?В постановке задачи что про это говорится? Некоторые не стесняются 31 день рисовать во всех месяцах (естественно, с нулевыми показателями в несуществующие дни), особенно, если таблица в отчете рассчитана сразу на несколько разных месяцев. А можно использовать начальную дату и прибавлять к ней количество дней, нужная дата сама получится. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.09.2015, 13:08:19 |
|
||
|
|

start [/forum/topic.php?fid=47&msg=39063050&tid=1832678]: |
0ms |
get settings: |
9ms |
get forum list: |
11ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
45ms |
get topic data: |
8ms |
get forum data: |
2ms |
get page messages: |
39ms |
get tp. blocked users: |
1ms |
| others: | 217ms |
| total: | 338ms |

| 0 / 0 |
