powered by simpleCommunicator - 2.0.59     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Informix [игнор отключен] [закрыт для гостей] / Помогите составить запрос
4 сообщений из 4, страница 1 из 1
Помогите составить запрос
    #32346396
Фотография Antonariy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Есть такая таблица, называется sessions:
client int,
begintime datetime,
endtime datetime
соответственно в ней хранится начало и конец работы клиента.
Нужно сделать выборку за день (например endtime >= '2003-12-01 00:00:00' and
s.begintime < '2003-12-01 23:59:59'), содержащую количество сессий сгруппированых почасово, то есть 24 записи типа
00:00 - 01:00 24
01:00 - 02:00 37
и т.д.
...
Рейтинг: 0 / 0
Помогите составить запрос
    #32346444
Фотография Daugava
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Условие не полное. Предполагаем, что сессия, длившаяся более часа должна попасть во все интервалы.
1. Создаем табличку - описатель интервалов, наполнее думаю понятно.
create table a (
intervalname varchar(80),
begintime datetime hour to hour,
endtime datetime hour to hour
);

select a.intervalname, count(*)
from a, sessions s
where extend(s.begintime)>=a.begintime and extend(s.endtime)<=a.endtime
group by a.intervalname;

Подумать что делать с сессиями, которые переходят через сутки, а также теми которые длятся более суток я предлагаю самому :-).
...
Рейтинг: 0 / 0
Помогите составить запрос
    #32346450
Фотография Daugava
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Торопился, недописал. все extend(s.begintime) читать как extend(s.begintime, hour to hour)
...
Рейтинг: 0 / 0
Помогите составить запрос
    #32346686
Фотография Antonariy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
На самом деле нужно посчитать сумму количества минут по всем сессиям почасово. Короче, пример - берем три отрезка 00:00-01:00, 01:00-02:00, 02:00-03:00 и три сессии, первая 00:45-01:15, вторая 01:00-02:15, третья 02:15-02:30.
Результат:
00:00-01:00 15 мин
01:00-02:00 75 мин
02:00-03:00 30 мин

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


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