Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Oracle Новый топик    Ответить
 Не могу понять смысл order by для CORR  [new]
AlexGru
Member

Откуда: Пермь рядом
Сообщений: 1600
Вот есть такая задачка.
3 поля, дата-время + 2 с цифрами.
Нужно запрос отсортировать и в 4-ом поле получить (CORR линейный коэффициент корреляции Пирсона. ). С возможностью задания по скольки парам счиать.
Понимаю как тут применить partition by. Всё ясно. Делим на группы и в рамках этих групп считает корреляция для всех пар в группе.

Вот пример набора данных
select dt,v1,v2
from(
select to_date('08.02.2012 8:07:57','dd.mm.yyyy hh24:mi:ss') as dt,	1.3266	 as v1,1.0818 as v2 from dual union all
select to_date('08.02.2012 8:07:56','dd.mm.yyyy hh24:mi:ss') as dt,	1.32661	 as v1,1.0818 as v2 from dual union all
select to_date('08.02.2012 8:07:55','dd.mm.yyyy hh24:mi:ss') as dt,	1.3266	 as v1,1.0818 as v2 from dual union all
select to_date('08.02.2012 8:07:54','dd.mm.yyyy hh24:mi:ss') as dt,	1.3266	 as v1,1.0818 as v2 from dual union all
select to_date('08.02.2012 8:07:53','dd.mm.yyyy hh24:mi:ss') as dt,	1.32659	 as v1,1.0818 as v2 from dual union all
select to_date('08.02.2012 8:07:52','dd.mm.yyyy hh24:mi:ss') as dt,	1.32658	 as v1,1.0818 as v2 from dual union all
select to_date('08.02.2012 8:07:51','dd.mm.yyyy hh24:mi:ss') as dt,	1.32657	 as v1,1.08177 as v2 from dual union all
select to_date('08.02.2012 8:07:50','dd.mm.yyyy hh24:mi:ss') as dt,	1.32656	 as v1,1.08177 as v2 from dual union all
select to_date('08.02.2012 8:07:49','dd.mm.yyyy hh24:mi:ss') as dt,	1.32654	 as v1,1.08175 as v2 from dual union all
select to_date('08.02.2012 8:07:48','dd.mm.yyyy hh24:mi:ss') as dt,	1.32654	 as v1,1.08177 as v2 from dual union all
select to_date('08.02.2012 8:07:47','dd.mm.yyyy hh24:mi:ss') as dt,	1.32654	 as v1,1.08178 as v2 from dual union all
select to_date('08.02.2012 8:07:46','dd.mm.yyyy hh24:mi:ss') as dt,	1.32653	 as v1,1.08179 as v2 from dual union all
select to_date('08.02.2012 8:07:45','dd.mm.yyyy hh24:mi:ss') as dt,	1.32655	 as v1,1.08179 as v2 from dual union all
select to_date('08.02.2012 8:07:44','dd.mm.yyyy hh24:mi:ss') as dt,	1.32656	 as v1,1.08179 as v2 from dual union all
select to_date('08.02.2012 8:07:43','dd.mm.yyyy hh24:mi:ss') as dt,	1.32657	 as v1,1.08179 as v2 from dual union all
select to_date('08.02.2012 8:07:42','dd.mm.yyyy hh24:mi:ss') as dt,	1.32659	 as v1,1.08179 as v2 from dual union all
select to_date('08.02.2012 8:07:41','dd.mm.yyyy hh24:mi:ss') as dt,	1.32658	 as v1,1.08179 as v2 from dual union all
select to_date('08.02.2012 8:07:40','dd.mm.yyyy hh24:mi:ss') as dt,	1.32657	 as v1,1.08179 as v2 from dual union all
select to_date('08.02.2012 8:07:39','dd.mm.yyyy hh24:mi:ss') as dt,	1.32657	 as v1,1.08181 as v2 from dual union all
select to_date('08.02.2012 8:07:38','dd.mm.yyyy hh24:mi:ss') as dt,	1.32657	 as v1,1.08181 as v2 from dual union all
select to_date('08.02.2012 8:07:37','dd.mm.yyyy hh24:mi:ss') as dt,	1.32658	 as v1,1.08183 as v2 from dual union all
select to_date('08.02.2012 8:07:36','dd.mm.yyyy hh24:mi:ss') as dt,	1.32657	 as v1,1.08183 as v2 from dual union all
select to_date('08.02.2012 8:07:35','dd.mm.yyyy hh24:mi:ss') as dt,	1.32658	 as v1,1.08184 as v2 from dual union all
select to_date('08.02.2012 8:07:34','dd.mm.yyyy hh24:mi:ss') as dt,	1.32658	 as v1,1.08184 as v2 from dual union all
select to_date('08.02.2012 8:07:33','dd.mm.yyyy hh24:mi:ss') as dt,	1.32658	 as v1,1.08184 as v2 from dual)
order by dt


А если нужно скользящее скажем столбец cor в котором после десятой записи при данной сортировке (order by dt)
для каждой следующей записи получить значение корреляции для последних 10 зписей (последние по дате-времени).

Думаю задача понятна ?, хоть и криво как-то получилось объяснить.
8 фев 12, 10:33    [12051918]     Ответить | Цитировать Сообщить модератору
 Re: Не могу понять смысл order by для CORR  [new]
Добрый Э - Эх
Guest
over(... range between... )?
8 фев 12, 10:36    [12051938]     Ответить | Цитировать Сообщить модератору
 Re: Не могу понять смысл order by для CORR  [new]
Добрый Э - Эх
Guest
или все же
over( ... rows between ... preceding and ... following)?
8 фев 12, 10:41    [12051971]     Ответить | Цитировать Сообщить модератору
 Re: Не могу понять смысл order by для CORR  [new]
AlexGru
Member

Откуда: Пермь рядом
Сообщений: 1600
Добрый Э - Эх,
Ёк макарёк жеж точно. Спасибо большое.
8 фев 12, 10:45    [12052001]     Ответить | Цитировать Сообщить модератору
Все форумы / Oracle Ответить