Поделиться через


Percentile_Disc (Azure Stream Analytics)

Вычисляет процентиль на основе всего набора данных. Для заданного значения процентиля P PERCENTILE_DISC сортирует значения выражения в предложении ORDER BY и возвращает значение в пределах наименьшего совокупного расстояния, которое больше или равно P. Например, PERCENTILE_DISC (0,5) вычисляет 50-й процентиль (то есть медиану) выражения. PERCENTILE_DISC вычисляет процентиль на основе дискретного распределения значений данных; результат равен определенному значению из входных данных.

Синтаксис

PERCENTILE_DISC ( numeric_literal )
       OVER ( ORDER_BY order_by_expression [ ASC | DESC ])

Аргументы

numeric_literal

Процентиль, который необходимо вычислить. Значение должно находиться в диапазоне от 0 до 1.

OVER ( ORDER BY order_by_expression [ ASC | DESC] )

Указывает список числовых значений для сортировки и вычисления процентиля. Разрешен только один аргумент order_by_expression. Выражение должно возвращать числовое значение. Другие типы данных не допускаются. По умолчанию задан порядок сортировки по возрастанию.

Типы возвращаемых данных

Тип возвращаемого значения определяется типом order_by_expression.

Примеры

В следующем примере используется PERCENTILE_DISC для поиска 95-го процентиля доступности службы в разных регионах. Обратите внимание, что функция всегда возвращает процентиль, который находится в входном наборе данных.

SELECT PERCENTILE_DISC(0.95) OVER (ORDER BY serviceAvailability)
FROM testInput
GROUP BY SlidingWindow(hours, 1)

Пример входных данных:

Регионы ServiceAvailability
A 0,98
B 0.93
C 0,78
D 0,99
E 0.89

Пример результата:

0,99