powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Выборка статистики за интервал с нулевыми значениями.
9 сообщений из 9, страница 1 из 1
Выборка статистики за интервал с нулевыми значениями.
    #39061015
peektoseen
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Всем привет. Столкнулся с вопросом выборки статистики. Пример: нужно собрать почасовую статистику за последние 24 часа.
Вот мой запрос:
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
SELECT hour(date) as hour, 
            day(date) as day, 
            count(*) as count 
FROM `custom_wifi_stat` 
where iblock_element_id=44712 
         and date>DATE_SUB(NOW(), INTERVAL 24 HOUR) 
group by hour, day 
ORDER BY `date`


на выходе имею почасовую статистику за последние 24 часа:
hourdaycount11242132431724162527251825110251
Похоже на правду. Но! Суда нужно добавить не достающие часы с нулевым количеством.
Хотелось бы видеть на выходе:
hourdaycount11242122401324314240152401624017241182401924020240212402224023240025012502250325042505250625072518250925010251

Может кто-то сталкивался, или знает в какую сторону смотреть?
...
Рейтинг: 0 / 0
Выборка статистики за интервал с нулевыми значениями.
    #39061021
Фотография Akina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Сервер не умеет давать данные, которых у него нет.
Нужна опорная таблица часов, возможно, создаваемая динамически.
...
Рейтинг: 0 / 0
Выборка статистики за интервал с нулевыми значениями.
    #39061026
Фотография Alex_Ustinov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
опорная таблица (24 строки) +left join ....
...
Рейтинг: 0 / 0
Выборка статистики за интервал с нулевыми значениями.
    #39061033
Фотография Lumix
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
peektoseen,

если эта таблица не будет использоваться в дальнейшем в mysql, а будет использована только в программном коде, то есть смысл вместо опорной таблице в базе использовать опорный массив на 24 элемента с нулями и сливать этот массив с полученным массивом из базы. Так будет существенно проще.

Опорную таблицу в базе есть смысл создавать, если вы затем этот результат хотите ещё как-то куда-то в запрос подставить...
...
Рейтинг: 0 / 0
Выборка статистики за интервал с нулевыми значениями.
    #39061094
Фотография Alex_Ustinov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
существенно проще
создать тех.таблицу
seq1000 (id INT)
заполнить ее значениями 1-1000 и использовать в дальнейшем
SELECT id FROM seq1000 LIMIT 24;
и т.д.
...
Рейтинг: 0 / 0
Выборка статистики за интервал с нулевыми значениями.
    #39061161
peektoseen
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Спасибо всем за ответы.
Да, про опорную таблицу я уже думал, но не пойму как её связать еще и с днем.
У меня же не просто часы, а еще и день. Из опорной таблицы я смогу получить hour, но day нет.

Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
hour,	day,	count
11,	24,	2
13,	24,	3
17,	24,	1
6,	25,	2
7,	25,	1
8,	25,	1
10,	25,	1
...
Рейтинг: 0 / 0
Выборка статистики за интервал с нулевыми значениями.
    #39061165
miksoft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
peektoseenИз опорной таблицы я смогу получить hour, но day нет.Можете. Используйте ее два раза с разными алиасами.
...
Рейтинг: 0 / 0
Выборка статистики за интервал с нулевыми значениями.
    #39063020
peektoseen
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
miksoft, т.е. вы предлагаете для дней использовать ту же таблицу целых чисел, только с 1 по 30? А как быть с разным количеством дней в месяце?
...
Рейтинг: 0 / 0
Выборка статистики за интервал с нулевыми значениями.
    #39063050
miksoft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
peektoseenА как быть с разным количеством дней в месяце?В постановке задачи что про это говорится? Некоторые не стесняются 31 день рисовать во всех месяцах (естественно, с нулевыми показателями в несуществующие дни), особенно, если таблица в отчете рассчитана сразу на несколько разных месяцев.

А можно использовать начальную дату и прибавлять к ней количество дней, нужная дата сама получится.
...
Рейтинг: 0 / 0
9 сообщений из 9, страница 1 из 1
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Выборка статистики за интервал с нулевыми значениями.
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]