powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Oracle [игнор отключен] [закрыт для гостей] / временной интервал в аналитических функциях
8 сообщений из 8, страница 1 из 1
временной интервал в аналитических функциях
    #39344542
Фотография illion
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Здравствуйте!
Имеется таблица вида "Сотрудник"-"Расходы"-"ДатаВремя".
Возможно ли составить примерно такой запрос:
Код: plsql
1.
2.
3.
select distinct Сотрудник
, sum(Расходы) over (partition by Сотрудник за_текущие_сутки_начиная_с_00:00)
, sum(Расходы) over (partition by Сотрудник за_прошедшую_неделю)


или придется шерстить таблицу дважды с where/having?
...
Рейтинг: 0 / 0
временной интервал в аналитических функциях
    #39344551
груп бы + ...
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
illion,

прошедшая неделя это кто?
...
Рейтинг: 0 / 0
временной интервал в аналитических функциях
    #39344555
Фотография illion
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
груп бы + ...illion,

прошедшая неделя это кто?
это between trunc(sysdate-6,'DD') and sysdate
...
Рейтинг: 0 / 0
временной интервал в аналитических функциях
    #39344564
illion,

group by + условный sum.
...
Рейтинг: 0 / 0
временной интервал в аналитических функциях
    #39344569
Бельфя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Тут, наверное, поможет конструкция окна
Код: plsql
1.
2.
sum(Расходы) over(partition by "Сотрудник", "ДатаВремя")
,sum(Расходы) over (partition by "Сотрудник" order by "ДатаВремя" range between interval '7' day preceding and current row)
...
Рейтинг: 0 / 0
временной интервал в аналитических функциях
    #39344597
Бельфянаверное, поможетrange работает относительно строки, а не "сегодня".
...
Рейтинг: 0 / 0
временной интервал в аналитических функциях
    #39344616
Бельфя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
А если
Код: plsql
1.
... order by trunc("ДатаВремя" )...
...
Рейтинг: 0 / 0
временной интервал в аналитических функциях
    #39344636
Фотография illion
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
и from с where не забудьillion,

group by + условный sum.
точно, так получается в один пробег... Спасибо! Как всегда - простое решение лежало на поверхности, копать не надо было.

выходит как-то так:
Код: plsql
1.
2.
3.
4.
5.
select Сотрудник
, sum(case when ДатаВремя between trunc(sysdate,'DD') and sysdate then Расходы else 0 end) "РасходыДень"
, sum(Расходы) "РасходыНеделя"
where ДатаВремя between trunc(sysdate-6,'DD') and sysdate
group by Сотрудник
...
Рейтинг: 0 / 0
8 сообщений из 8, страница 1 из 1
Форумы / Oracle [игнор отключен] [закрыт для гостей] / временной интервал в аналитических функциях
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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