![]() |
|
Модераторы: skyboy |
![]()
|
|
| Veve |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 291 Регистрация: 1.1.2005 Где: Латвия, Рига Репутация: 3 Всего: 13 |
Здр...
Есть таблича: ---------------------------------------------------------------- | дата смерти | Убитый таракан ----------------------------------------------------------------- ................................................................................. | 2009-01-09 13:01:59 | Жорик ----------------------------------------------------------------- | 2009-01-09 13:02:59 | Зюзя ------------------------------------------------------------------ | 2009-01-09 16:00:01 | Ефросий .................................................................................. __________________________________________ Подскажите пожалуста как создать следующий запрос: Запрос должен работать в промежутке времени, ну к примеру так: dead_time BETWEEN '2009-01-09 13:00:00' AND '2009-01-09 17:00:00') и групировать количество убитых тараканчиков по часам... Ну типо того: с 2009-01-09 13:00:00 до 14:00:00 убито 2 тараканчика с 2009-01-09 14:00:00 до 15:00:00 убито 0 тараканчиков с 2009-01-09 15:00:00 до 16:00:00 убито 0 тараканчиков с 2009-01-09 16:00:00 до 17:00:00 убито 1 тараканчик Ну я думаю... что что-то в такой степи должно быть ну только чё-то не хватает... SELECT count(*) FROM tarakan WHERE (dead_time BETWEEN '2009-01-09 13:00:00' AND '2009-01-09 17:00:00') GROUP BY hour(dead_time); зарание спасибо! |
|||
|
||||
| muzer |
|
||||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 387 Регистрация: 31.8.2006 Репутация: 30 Всего: 31 |
|
||||
|
|||||
| skyboy |
|
|||
|
неОпытный ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 9820 Регистрация: 18.5.2006 Где: Днепропетровск Репутация: 41 Всего: 260 |
только указания времени, по-моему, и не хватает
|
|||
|
||||
| Veve |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 291 Регистрация: 1.1.2005 Где: Латвия, Рига Репутация: 3 Всего: 13 |
Не совсем!!!!
Не хватает нулевых тараканчиков. Мне нужен отчёт за каждый час даже когда тараканчиков не убивали! с 2009-01-09 13:00:00 до 14:00:00 убито 2 тараканчика с 2009-01-09 14:00:00 до 15:00:00 убито 0 тараканчиков с 2009-01-09 15:00:00 до 16:00:00 убито 0 тараканчиков с 2009-01-09 16:00:00 до 17:00:00 убито 1 тараканчик[/B] |
|||
|
||||
| skyboy |
|
|||
|
неОпытный ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 9820 Регистрация: 18.5.2006 Где: Днепропетровск Репутация: 41 Всего: 260 |
а хранимые процедуры СУБД поддерживаются? может, есть таблица, в которой зачем - то хранятся записи о каждом часе, для которого надо произвести рассчет? ведь СУБД не имеет понятия о "каждом часе"... или статистика - только за последние сутки приводится?
|
|||
|
||||
| muzer |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 387 Регистрация: 31.8.2006 Репутация: 30 Всего: 31 |
Ой, извиняйте. Не внимателен был.
В Oracle можно было бы с dual придумать. А здесь приходит на ум мысль создать таблицу с 24 часами, по ней генерить необходиые времена, и джойнить это дело через LEFT JOIN с таблицей данных. Например, таблица с часами Hours, одно поле value (24 строки, от 0 до 23)
Добавлено @ 19:52 Соответсвенно в примере не ограничивал по времени, сами сделаете думаю Ну и можно ещё покумекать, как уйти от ограниченности 24мя часами. Добавлено @ 19:57 И снова я Подумал, что вы вряд ли совсем уж маньяк, и запаса в 10 тысяч часов вам хватит, поэтому делаем Hours из 10 тысяч строк, а дальше в подзапросе обычным лимитом ограничиваем кол-во часов, на которое нам нужно оторваться от стартовой даты. |
|||
|
||||
![]()
|
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | MySQL | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |