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

Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
       with a as (select t.tab_num, t.last_name || ' ' || t.first_name || ' ' || t.second_name as staff, t.address as location, t.date_place
                    from mobile_employees t
                   where t.tab_num = '0000001095')
         select a.staff,
                a.location,
                first_value(date_place) over(partition by location order by date_place) as min_date,
                last_value(date_place) over(partition by location order by date_place) as max_date
           from a
          order by date_place



надо
чтобы стало как на скрин шоте
адрес г. Москва, р-н Измайлово, пл. Измайловская, 11 | дата/время 06.03.2018 8:21:42 по 06.03.2018 8:40:33
адрес Последнее известное: г. Москва, р-н Тверской, бульв. Цветной, 11С3 | дата/время 06.03.2018 11:20:41 по 06.03.2018 12:21:30
...
Рейтинг: 0 / 0
Групировать срочки используя partition
    #39624285
XMLer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
bombimbom,
GROUP BY уменьшает количество строк
...
Рейтинг: 0 / 0
Групировать срочки используя partition
    #39624312
Фотография -2-
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
XMLerGROUP BY уменьшает количество строкможет и увеличивать.
...
Рейтинг: 0 / 0
Групировать срочки используя partition
    #39624434
Alexander_Ttl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
-2-XMLerGROUP BY уменьшает количество строкможет и увеличивать.Это как? Поясни.

bombimbom, вместо оконных функций, max и group by помогут.
...
Рейтинг: 0 / 0
Групировать срочки используя partition
    #39624442
Фотография Elic
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Alexander_Ttl-2-пропущено...
может и увеличивать.Это как? Поясни.RTFM SQL for Aggregation in Data Warehouses (FAQ)
Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
SQL> select max(dummy), count(*) from dual group by cube(1, 1, 1, 1);

M   COUNT(*)
- ----------
X          1
X          1
X          1
X          1
X          1
X          1
X          1
X          1
X          1
X          1
X          1
X          1
X          1
X          1
X          1
X          1

16 rows selected.

...
Рейтинг: 0 / 0
Групировать срочки используя partition
    #39624452
bombimbom
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
XMLer,

Вообще аналитические функции группируют, тут не нужен group by
...
Рейтинг: 0 / 0
Групировать срочки используя partition
    #39624458
Dshedoo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
bombimbomXMLer,

Вообще аналитические функции группируют, тут не нужен group by
Именно group by тебе и нужен, если ты хочешь убрать "лишние" строки.
...
Рейтинг: 0 / 0
Групировать срочки используя partition
    #39624460
Фотография Elic
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
bombimbomВообще аналитические функции группируютЧудак, не надо упорствовать в невежестве.
...
Рейтинг: 0 / 0
Групировать срочки используя partition
    #39624473
bombimbom
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Dshedoo, а чего не distinct тогда? :)
...
Рейтинг: 0 / 0
Групировать срочки используя partition
    #39624503
Dshedoo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
bombimbomDshedoo, а чего не distinct тогда? :)
Можно, только если переписать last_value так, чтобы значение возвращалось одно и то же, но дистинкт - это крайне прожорливая штука, лучше использовать аналитику.

Код: plsql
1.
last_value(date_place) over(partition by location order by date_place ROWS BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING) as max_date
...
Рейтинг: 0 / 0
Групировать срочки используя partition
    #39624512
bombimbom
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Dshedoo,
а Rows between это диапазон для окна?
...
Рейтинг: 0 / 0
Групировать срочки используя partition
    #39624515
XMLer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Alexander_Ttl-2-пропущено...
может и увеличивать.Это как? Поясни.


у group by кляузы есть расширения для промежуточных итогов
...
Рейтинг: 0 / 0
Групировать срочки используя partition
    #39624517
Dshedoo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
bombimbomDshedoo,
а Rows between это диапазон для окна?
Отвечу как специалист: я понятия не имею что это, но это решает поставленную задачу.
Можете загуглить.
...
Рейтинг: 0 / 0
Групировать срочки используя partition
    #39624518
bombimbom
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
bombimbom,

получается круто! ну почти! вот исходные данные
...
Рейтинг: 0 / 0
Групировать срочки используя partition
    #39624521
bombimbom
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
bombimbom,

мы пропускаем то что там в зеленом квадратике
...
Рейтинг: 0 / 0
Групировать срочки используя partition
    #39624536
XMLer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
bombimbomDshedoo,
а Rows between это диапазон для окна?
Тебя тролят, пример с rows between UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING это как если бы тебя идиотом назвали.
...
Рейтинг: 0 / 0
Групировать срочки используя partition
    #39624538
K790
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вы бы данные предоставили с кляузой with + ваш запрос, глядишь люди бы и потянулись.
...
Рейтинг: 0 / 0
Групировать срочки используя partition
    #39624543
bombimbom
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
XMLer,

ясно, подтверждает что на наших форумах понтарезы сидят, лучше полазить за рубежом :)
...
Рейтинг: 0 / 0
Групировать срочки используя partition
    #39624552
Фотография AmKad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
K790Вы бы данные предоставили с кляузой with + ваш запрос, глядишь люди бы и потянулись.Ты что?! В таком случае есть возможность закрыть тему в два-три ответа. А так, видишь, люди вдоволь пообщаться могут.
...
Рейтинг: 0 / 0
Групировать срочки используя partition
    #39624553
Dshedoo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
bombimbomXMLer,

ясно, подтверждает что на наших форумах понтарезы сидят, лучше полазить за рубежом :)
Вся прелесть в том, что это он тебя троллит на самом деле.

Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
       with a as (select t.tab_num, t.last_name || ' ' || t.first_name || ' ' || t.second_name as staff, t.address as location, t.date_place
                    from mobile_employees t
                   where t.tab_num = '0000001095')
         select distinct 
                a.staff,
                a.location,
                first_value(date_place) over(partition by location order by date_place ROWS BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING) as min_date,
                last_value(date_place) over(partition by location order by date_place ROWS BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING) as max_date
           from a
          order by date_place



или

Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
with a as (select t.tab_num, t.last_name || ' ' || t.first_name || ' ' || t.second_name as staff, t.address as location, t.date_place
                    from mobile_employees t
                   where t.tab_num = '0000001095')
         select a.staff,
                a.location,
                min(date_place) as min_date,
                max(date_place) as max_date
           from a
          group by a.staff, a.location,
          order by date_place
...
Рейтинг: 0 / 0
Групировать срочки используя partition
    #39624557
XMLer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AmKadK790Вы бы данные предоставили с кляузой with + ваш запрос, глядишь люди бы и потянулись.Ты что?! В таком случае есть возможность закрыть тему в два-три ответа. А так, видишь, люди вдоволь пообщаться могут.
Во всем нужно видеть что-то хорошее. Автор топика неисправим, но некий Александр узнал что-то новое для себя.
...
Рейтинг: 0 / 0
Групировать срочки используя partition
    #39624559
Фотография Elic
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
bombimbomлучше полазить за рубежомЗдесь дебилом меньше только будет.
...
Рейтинг: 0 / 0
Групировать срочки используя partition
    #39624620
merch
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
bombimbom ясно, подтверждает что на наших форумах понтарезы сидят, лучше полазить за рубежом :)

сильное заявление.
...
Рейтинг: 0 / 0
Групировать срочки используя partition
    #39624624
Фотография Stax
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
bombimbombombimbom,

мы пропускаем то что там в зеленом квадратике


Судя по зеленому квадратику, гляньте на решение под кодом start_of_groups

Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
SQL> ed
Wrote file afiedt.buf

  1  with t(location,date_place) as (
  2  select 'Москва',date '2018-02-01' from dual union all
  3  select 'Москва',date '2018-02-02' from dual union all
  4  select 'Москва',date '2018-02-03' from dual union all
  5  select 'Ізмайлово',date '2018-02-04' from dual union all
  6  select 'Ізмайлово',date '2018-02-05' from dual union all
  7  select 'Львів',date '2018-02-06' from dual union all
  8  select 'Москва',date '2018-02-07' from dual union all
  9  select 'Москва',date '2018-02-08' from dual union all
 10  select 'Москва',date '2018-02-09' from dual union all
 11  select 'Москва',date '2018-02-10' from dual union all
 12  select 'Неізвестное',date '2018-02-11' from dual union all
 13  select 'Неізвестное',date '2018-02-12' from dual union all
 14  select 'Ізмайлово',date '2018-02-13' from dual)
 15  , tt as (
 16  select t.*
 17  ,row_number() over(order by date_place) -
 18   row_number() over( partition by location order by date_place) gr
 19  ,row_number() over( partition by location order by date_place) r2
 20  ,row_number() over(order by date_place) r
 21   from t)
 22  select
 23   location,min(date_place) min_dat,max(date_place) max_dat
 24  from tt
 25  group by location,gr
 26* order by 2
SQL> /

LOCATION    MIN_DAT  MAX_DAT
----------- -------- --------
Москва      01.02.18 03.02.18
Ізмайлово   04.02.18 05.02.18
Львів       06.02.18 06.02.18
Москва      07.02.18 10.02.18
Неізвестное 11.02.18 12.02.18
Ізмайлово   13.02.18 13.02.18

6 rows selected.


....
stax
...
Рейтинг: 0 / 0
Групировать срочки используя partition
    #39624629
XMLer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Stax,
Еще один любитель забивать гвозди отверткой....
...
Рейтинг: 0 / 0
25 сообщений из 33, страница 1 из 2
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Групировать срочки используя partition
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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