powered by simpleCommunicator - 2.0.53     © 2025 Programmizd 02
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Периоды, объединение
12 сообщений из 37, страница 2 из 2
Периоды, объединение
    #34042355
Фотография Elic
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
4uko Jannny КалинаИсходная табличка - 60 млн А расскажите потом, что она скажет на группировку? Мы в свое время не добились, чтобы группировка такого же объема проходила. ;(Мне тоже интересно. Кто нибудь ответит ?К сожалению, только не автор. RIP :(
...
Рейтинг: 0 / 0
Периоды, объединение
    #34042453
4uko
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Elic 4uko Jannny КалинаИсходная табличка - 60 млн А расскажите потом, что она скажет на группировку? Мы в свое время не добились, чтобы группировка такого же объема проходила. ;(Мне тоже интересно. Кто нибудь ответит ?К сожалению, только не автор. RIP :(
Жалко Калину.
А не афтар может ответить ? есть у кого такие обьемы ?
...
Рейтинг: 0 / 0
Периоды, объединение
    #34042555
HX
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
4uko Elic 4uko Jannny КалинаИсходная табличка - 60 млн А расскажите потом, что она скажет на группировку? Мы в свое время не добились, чтобы группировка такого же объема проходила. ;(Мне тоже интересно. Кто нибудь ответит ?К сожалению, только не автор. RIP :(
Жалко Калину.
А не афтар может ответить ? есть у кого такие обьемы ?
Основное это сортировка, если есть возможность то попытаться удержаться в рамках one pass. Imho, перевожусь в manual work area size policy и там провожу сортировку настривая параметры. sort_area_size, sort_multiblock_read_count чтобы не упасть в multi pass.
Подробности по методикам и расчетам тут и у JL d книге про Cost base Optimizer (ищите по форуму).
+ настройка ввода\\вывода (asyncio по возможности directio и т.д.)
...
Рейтинг: 0 / 0
Периоды, объединение
    #34135722
mgtu
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
И все таки я не понял к чему пришли SY и Quadro ? Срвнивают результаты на 1 млн но рассуждают о 60 млн. Так как будет всетаки лучше ? по (SY) или по (Elic и Quadro) ?
...
Рейтинг: 0 / 0
Период между сообщениями больше года.
Периоды, объединение
    #36188556
asdfghjkl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Elic[quot Калина]Необходимо объединить периоды для которых комбинация f0,f1 неизменна
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
select f0, f1, min(sdate) as sdate, max(edate) as edate
  from
  ( select f0, f1, sdate, edate, sum(start_of_group) over (partition by f0, f1 order by sdate) as group_no
      from
      ( select f0, f1, sdate, edate,
            decode(lag(edate) over (partition by f0, f1 order by sdate), sdate,  0 ,  1 ) as start_of_group
          from tst3
      )
  )
  group by f0, f1, group_no
  order by  3 
;

F0         F1         SDATE             EDATE
---------- ---------- ----------------- -----------------
F0         F1          01 . 03 . 06   00 : 00 : 00   03 . 03 . 06   00 : 00 : 00 
F0         F2          03 . 03 . 06   00 : 00 : 00   04 . 03 . 06   00 : 00 : 00 
F0         F1          04 . 03 . 06   00 : 00 : 00   09 . 03 . 06   00 : 00 : 00 
подскажите данный запрос будет работать только с Oracle, у меня подобная задача, но надо реализовать на MySQL.
...
Рейтинг: 0 / 0
Периоды, объединение
    #36188570
Фотография suPPLer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
asdfghjkl,

а разве в MySQL добавили уже аналитические функции?
...
Рейтинг: 0 / 0
Периоды, объединение
    #36188572
asdfghjklподскажите данный запрос будет работать только с Oracle, у меня подобная задача, но надо реализовать на MySQL.Данные запрос, к сожалению, будет работать только на Oracle. MySQL - сильно прост для таких запросов.
...
Рейтинг: 0 / 0
Периоды, объединение
    #36188576
suPPLerasdfghjkl,

а разве в MySQL добавили уже аналитические функции?Ещё не добавили, но Оракл уже купил себе MySQL. Так что, кто знает, чего ждет эту СУБД :) ;)
...
Рейтинг: 0 / 0
Периоды, объединение
    #36188655
asdfghjkl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
просто есть аналогичная задача и мне надо ее решить, но на MySQL
...
Рейтинг: 0 / 0
Периоды, объединение
    #36190049
asdfghjklпросто есть аналогичная задача и мне надо ее решить, но на MySQLПриводи набор тестовых данных, условия задачи и желаемый вид результата. Что-нибудь придумаем, ибо [практически] любую аналитическую функцию можно переписать через "классические" возможности SQL.
Как пример, решение задачи объединения интервалов без использования аналитики: тынц
...
Рейтинг: 0 / 0
Периоды, объединение
    #36190077
asdfghjklпросто есть аналогичная задача и мне надо ее решить, но на MySQLЕсли же решать задачу в той постановке, что сделал автор топика, и на его же наборе исходных данных, то решение без аналитики могло бы выглядеть вот так:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
select v.f0, v.f1, min(v.sdate) as sdate, max(v.edate) as edate
  from (
         select t0.*,
                (select sum(case 
                              when (t0.f0,t0.f1) = ((t1.f0,t1.f1)) then  1  
                              else  0  
                            end) - count( 1 )
                   from tst3 t1
                  where t0.sdate >= t1.sdate
                ) as grp_id
           from TST3 t0
       ) v
 group by v.f0, v.f1, v.grp_id
 order by min(v.sdate)

Query finished, retrieving results...

F0   F1      SDATE        EDATE
--   --   ----------   ----------
F0   F1    1 -мар- 2006     3 -мар- 2006 
F0   F2    3 -мар- 2006     4 -мар- 2006 
F0   F1    4 -мар- 2006     9 -мар- 2006 

 3  row(s) retrieved
...
Рейтинг: 0 / 0
Период между сообщениями больше года.
Периоды, объединение
    #39849605
Andrea911
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Elic КалинаНеобходимо объединить периоды для которых комбинация f0,f1 неизменна
Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
select f0, f1, min(sdate) as sdate, max(edate) as edate
  from
  ( select f0, f1, sdate, edate, sum(start_of_group) over (partition by f0, f1 order by sdate) as group_no
      from
      ( select f0, f1, sdate, edate,
            decode(lag(edate) over (partition by f0, f1 order by sdate), sdate, 0, 1) as start_of_group
          from tst3
      )
  )
  group by f0, f1, group_no
  order by 3
;

F0         F1         SDATE             EDATE
---------- ---------- ----------------- -----------------
F0         F1         01.03.06 00:00:00 03.03.06 00:00:00
F0         F2         03.03.06 00:00:00 04.03.06 00:00:00
F0         F1         04.03.06 00:00:00 09.03.06 00:00:00




Elic, спасибо! Я два часа пыталась придумать скрипт, чтобы без курсора такую же задачу на MS SQL сделать, Ваш ответ меня просто спас!
...
Рейтинг: 0 / 0
12 сообщений из 37, страница 2 из 2
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Периоды, объединение
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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