Галерея
7757 8119 8300 8698 8817 9504 9722 9937
Интересные записи
Топовые новости
Новое

Функция PERCENTILE DISC

Из группы возвращается значение, которое имеет наименьшее кумулятивное распределение, большее или равное указанному процентилю.






Синтаксис SQL 2003

В следующем синтаксисе процентиль — это число от 0 до 1.

PERCENTILE_DISC(процентиль) WITHIN GROUP (ORDER BY список_для_сортировки)

список_для_сортировки ::=элемент_сортировки [, элемент_сортировки…]

элемент_сортировки ::= выражение [ASC|DESC] [NULLS FIRSTINULLS LAST]

Платформа Oracle позволяет использовать в предложении ORDER BY только одно выражение.

PERCENTILE_DISC(процентиль) WITHIN GROUP (ORDER BY выражение)

Кроме того, Oracle позволяет использовать оконный синтаксис.

PERCENTILE_DISC(процентиль) WITHIN GROUP

(ORDER BY список_для_сортировки) OVER (секционирование)

За объяснениями предложения секционирование обращайтесь к разделу «Оконные функции ANSI SQL» ниже в этой главе.



DB2, MySQL, PostgreSQL и SQL Server

В этих платформах нет реализации агрегатной функции PERCENTILE_DISC. Пример

Следующий пример сходен с примером функции PERCENTILEJCONT, за исключением того, что для каждой группы возвращается значение ближайшее, но не превышающее 60-го процентиля.






Oracle


RANK

Для указанной гипотетической строки вычисляется ранг в группе. Это не плотный ранг. Если в группе есть строки, имеющие одинаковый ранг, то возможен пропуск рангов. Если вы хотите использовать плотный ранг, применяйте функцию DENSERANK.

В следующей схеме синтаксиса элементы списка значений соответствуют по положению элементам списка для сортировки. Следовательно, оба списка должны содержать одинаковое число выражений.

(список_значений) WITHIN GROUP (ORDER BY список_для_сортировки)

список_значений ::= выражение [, выражение…]

список_для_сортировки :=элемент_сортировки [, элемент_сортировки…]

элемент_сортировки ::= выражение [ASC j DESC] [NULLS FIRST|NULLS LAST]






Oracle

Платформа Oracle поддерживает синтаксис SQL 2003, а также следующий аналитический синтаксис.

RANK() OVER ([секционирование’] сортировка)

За объяснениями предложений секционирование и сортировка обращайтесь к разделу «Оконные функции ANSI SQL» ниже в этой главе.



DB2, MySQL, PostgreSQL и SQL Server

В этих платформах нет реализации агрегатной функции RANK.

Пример

В следующем примере определяется ранг новой гипотетической строки (num.=4, odd=1) в каждой группе строк из таблицы test4, где группы различаются по значениям столбца odd.

В обоих случаях ранг гипотетической функции будет 4. В группе odd=0 новая строка идет после строк (0.0), (2.0) и (4.0), и, таким образом, ее положение будет 4. В группе odd=1 новая строка будет идти после (1.1), (3.1) и дубликата (3.1). В этом случае новая строка идет после трех строк, так что она будет иметь ранг 4. Сравните с функцией DENSE_RANK.

В SQL 2003 определяется семейство функций, имена которых начинаются с REGR_ и которые связаны с различными аспектами линейной регрессии. Эти функции работают с линией регрессии, получаемой методом наименьших квадратов.






Синтаксис SQL 2003

Ниже приводится синтаксис и краткое описание функций REGR_.

REGRA VGX(3aeucuMca, независимая)

Средняя величина (как в AVG(x)) значений независимых переменных.

REGR_AVGY(3aeucuMm, независимая)

Средняя величина (как bAVG(y)) значений зависимых переменных.

REGR_COUNT(3aeucuMOH, независимая)

Определяется количество пар чисел, не содержащих пустых (NULL) значений.

REGR_INTERCEPT(3aeucuMm, независимая)

Вычисляется точка пересечения линии регрессии с осью Y (y-intercept).

REGR_R2(3aeucuMm, независимая)

Вычисляется коэффициент детерминации.

REGRSLOPE(3aeucuMcm, независимая)

Вычисляется крутизна линии регрессии.


Семейство функций REGR

REGR_SXX(зависимая, независимая)

Сумма квадратов значений независимых переменных.

REGRSXY(зависимая, независимая)

Сумма произведений каждой пары значений.

REGRSYY(зависимая, независимая)

Сумма квадратов значений зависимых переменных.

Функции REGR_ применимы только к парам чисел, содержащим непустые значения. Пара, содержащая одно или два пустых значения, игнорируется.


DB2 и Oracle

Платформы DB2 и Oracle поддерживают синтаксис SQL 2003 для всех функций REGR_. Кроме того, DB2 поддерживает укороченное имя REGRJCPT вместо REGR INTERCEPT.

Oracle поддерживает следующий аналитический синтаксис.

ВЕСП_функция (зависимая, независимая) OVER (оконное_предложение)

За объяснениями параметра оконное_предлсасение обращайтесь к разделу «Оконные функции ANSI SQL» ниже в этой главе.


MySQL, PostgreSQL и SQL Server

Эти платформы не имеют реализации семейства функций REGR.

Пример

В следующем примере функции REGR_COUNTдемонстрируется, что функция игнорирует пары значений, содержащие одно или два пустых значения. Таблица test3 содержит три пары непустых чисел и еще три пары, в которых хотя бы одно значение — NULL.

Функция REGRCOUNT игнорирует пары, содержащие пустые значения, и считает только те пары, значения в которых не равны NULL.

Точно так же и все другие функции семейства REGR_ перед вычислениями отфильтровывают пары, содержащие пустые значения.


STDDEV_POP

Используйте функцию STDDEV_POP, чтобы найти стандартное отклонение совокупности в группе числовых значений.






Синтаксис SQL 2003

STDDEV_POP(числовое_выражение)


DB2 и MySQL

Используется функция STDDEV. В DB2 и MySQL функция STDDEV возвращает стандартное отклонение совокупности.



PostgreSQL

В этой платформе нет функции для вычисления стандартного отклонения совокупности.






Oracle

Платформа Oracle поддерживает стандартный синтаксис, а также следующий аналитический синтаксис.

STDDEV_POP(численное_выражение) OVER (оконное_предложение)

За объяснениями параметра оконное предложение обращайтесь к разделу «Оконные функции ANSI SQL» ниже в этой главе.




SQL Server

Используйте функцию STDEVP.


STDDEV_SAMP

Применяйте функцию STDEVJSAMP для того, чтобы найти выборочное стандартное отклонение в группе числовых значений.






Синтаксис SQL 2003

STDDEV_SAMP(числовое_выражение)






Oracle

Платформа Oracle поддерживает стандартный синтаксис. Кроме того, в Oracle есть функция STDDEV, которая работает почти так же, как STDDEVJSAMP, за исключением того, что она возвращает ноль (непустое значение), если в наборе есть только одно значение.

Также Oracle поддерживает аналитический синтаксис.

STDDEV_SAMP(числовое_выражение) OVER (оконное_предложение)

За объяснениями параметра оконное предложение обращайтесь к разделу «Оконные функции ANSI SQL» ниже в этой главе.


DB2

У этой платформы нет функции для вычисления выборочного стандартного отклонения.



MySQL

В MySQL нет функции для вычисления выборочного стандартного отклонения. В MySQL есть функция под названием STDDEV, но она возвращает стандартное отклонение совокупности.



PostgreSQL

Используйте функцию STDDEV.




SQL Server

Используйте функцию STDEV (ojywo D!).

VAR_POP

Используйте функцию VARPOP для вычисления дисперсии генеральной совокупности для набора значений.






Синтаксис SQL 2003

VAR_P0P(числовое_выражение)


DB2 и PostgreSQL

Эти платформы не предлагают функций для вычисления дисперсии совокупности.



MySQL

Используйте функцию VARIANCE, которая в MySQL возвращает дисперсию генеральной совокупности.






Oracle

Платформа Oracle поддерживает стандартный синтаксис, а также следующий аналитический синтаксис.

УАН_РОР(числовое_выражение) OVER {оконное_предложение)

За объяснениями параметра оконное предложение обращайтесь к разделу «Оконные функции ANSI SQL» ниже в этой главе.




SQL Server

Используйте функцию VARP.

Источник