powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Oracle [игнор отключен] [закрыт для гостей] / как лучше определить время простоя/работы
6 сообщений из 6, страница 1 из 1
как лучше определить время простоя/работы
    #39554903
Анчоус_ТТТ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Добрый день! подскажите, пожалуйста, как лучше реализовать учет времени простоя/работы, при следующей структуре
есть таблица логирования, по типу

logw
n_строки тип_операции пользовательвремя 1 1[вход] user1 17.11.2017 10:33:22 2 2[действие] user1 17.11.2017 10:36:22 3 3[выход] user1 17.11.2017 10:37:22 .................. 5 1[вход] user1 17.11.2017 10:38:22

результат предполагается в другой таблице, по типу
rezult
n_строки пользовательвремя_работы время_простоя 1 user1 4 1

любая критика приветствуется, возможно кто-то сталкивался с аналогичной задачей, и есть мнение как это лучше реализовать.

спасибо.
...
Рейтинг: 0 / 0
как лучше определить время простоя/работы
    #39554925
Фотография Vadim Lejnin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Анчоус_ТТТ,
Начни отсюда:
Студентам, желающим помощи
Здесь не водятся Тостые фейи програмирования
Чтобы тебе помогли, нужно показать что ты что-то сделал сам.
Подготовить тестовые данные и свой шедевр, с точным описанием чего хочется и что не получается
Удобнее в виде
Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
-- генерация тестовых данных
with logw(rn,op,user,mytime) as (
select 1,1,'user1',to_date('17.11.2017 10:33:22','DD.MM.YYYY HH24:MI:SS') from dual union all
select 2,2,'user1',to_date('17.11.2017 10:36:22','DD.MM.YYYY HH24:MI:SS') from dual union all
...
)
-- другие таблицы если нужно
, rezult (rn,user,timew,timei) as (
select 1,'user1',4,1 from dual union all
... 
)
-- то что получилось у тебя
select ...



например, в каких единицах 4,1?
...
Рейтинг: 0 / 0
как лучше определить время простоя/работы
    #39554938
Анчоус_ТТТ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Vadim LejninАнчоус_ТТТ,
Начни отсюда:
Студентам, желающим помощи
Здесь не водятся Тостые фейи програмирования
Чтобы тебе помогли, нужно показать что ты что-то сделал сам.
Подготовить тестовые данные и свой шедевр, с точным описанием чего хочется и что не получается
Удобнее в виде
Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
-- генерация тестовых данных
with logw(rn,op,user,mytime) as (
select 1,1,'user1',to_date('17.11.2017 10:33:22','DD.MM.YYYY HH24:MI:SS') from dual union all
select 2,2,'user1',to_date('17.11.2017 10:36:22','DD.MM.YYYY HH24:MI:SS') from dual union all
...
)
-- другие таблицы если нужно
, rezult (rn,user,timew,timei) as (
select 1,'user1',4,1 from dual union all
... 
)
-- то что получилось у тебя
select ...



например, в каких единицах 4,1?
минуты.

спасибо, у меня нет цели получить готовое решение, достаточно критического взгляда, концептуально.
опять же, возможно, кто-то решал, что-то подобное, и готов поделится своими соображениями как в плане архитектуры, так и в плане реализации.
...
Рейтинг: 0 / 0
как лучше определить время простоя/работы
    #39554952
Фотография Vadim Lejnin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Анчоус_ТТТ,

поиск по сумма интервалов
...
Рейтинг: 0 / 0
как лучше определить время простоя/работы
    #39554956
Фотография andrey_anonymous
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Если речь не об учебной задаче, то первая проблема - факт выхода может не быть зафиксирован.
Как минимум, необходимо добавить "автовыход" по какому-либо набору правил (таймаут, конец рабочего дня и т.п.)
Если вопрос о том, как собрать - то либо поищите по форуму миллион примеров применения start_of_group, либо pl/sql.
Если версия позволяет - то https://docs.oracle.com/database/121/DWHSG/pattern.htm#DWHSG8956
Также можно решить рекурсивным with subquery factoring, connect by и самосоединением.
...
Рейтинг: 0 / 0
как лучше определить время простоя/работы
    #39554993
Анчоус_ТТТ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
andrey_anonymousЕсли речь не об учебной задаче, то первая проблема - факт выхода может не быть зафиксирован.
Как минимум, необходимо добавить "автовыход" по какому-либо набору правил (таймаут, конец рабочего дня и т.п.)
Если вопрос о том, как собрать - то либо поищите по форуму миллион примеров применения start_of_group, либо pl/sql.
Если версия позволяет - то https://docs.oracle.com/database/121/DWHSG/pattern.htm#DWHSG8956
Также можно решить рекурсивным with subquery factoring, connect by и самосоединением.
спасибо, то, что нужно
...
Рейтинг: 0 / 0
6 сообщений из 6, страница 1 из 1
Форумы / Oracle [игнор отключен] [закрыт для гостей] / как лучше определить время простоя/работы
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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