TopSum (расширения интеллектуального анализа данных)
Возвращает, в порядке уменьшения ранга, верхние строки таблицы, сумма которых, как минимум, равна указанному значению.
Синтаксис
TopSum(<table expression>, <rank expression>, <sum>)
Область применения
Выражение, возвращающее таблицу, например <table column reference>, или функция, возвращающая таблицу.
Тип возвращаемых данных
<table expression>
Замечания
Функция TopSum возвращает верхние строки таблицы в порядке уменьшения ранга, основанного на вычисленном значении аргумента <rank expression> для каждой строки. Строки возвращаются таким образом, чтобы сумма значений <rank expression> была больше или равна сумме, заданной аргументом <sum>. Функция TopSum возвращает наименьшее возможное количество элементов, удовлетворяющих условию при данном значении аргумента sum.
Примеры
В следующем примере создается прогнозирующий запрос к модели взаимосвязей, построенной с помощью учебника Учебник по основам интеллектуального анализа данных.
Чтобы понять, как работает функция TopPercent, возможно, будет полезно сначала выполнить прогнозирующий запрос, который возвращает только вложенную таблицу.
SELECT Predict ([Association].[v Assoc Seq Line Items], INCLUDE_STATISTICS, 10)
FROM
[Association]
NATURAL PREDICTION JOIN
SELECT (SELECT 'Women''s Mountain Shorts' as [Model]) AS [v Assoc Seq Line Items]) AS t
Примечание |
---|
В этом примере значение, заданное в качестве входных данных, содержит знак одинарной кавычки, а значит, его нужно экранировать и добавить перед ним еще один знак кавычки. При отсутствии уверенности в синтаксических конструкциях, используемых для вставки экранирующего символа, запросы можно создавать с помощью построителя прогнозирующих запросов. При выборе значения из раскрывающегося списка необходимый экранирующий символ вставляется автоматически. Дополнительные сведения см. в разделе Как создать одноэлементный запрос в конструкторе интеллектуального анализа данных. |
Результаты примера:
Модель |
$SUPPORT |
$PROBABILITY |
$ADJUSTEDPROBABILITY |
---|---|---|---|
Sport-100 |
4334 |
0.291283016 |
0.252695851 |
Фляга для воды |
2866 |
0.192620472 |
0.175205052 |
Ремонтный комплект |
2113 |
0.142012232 |
0.132389356 |
Камера шины для велосипеда Mountain |
1992 |
0.133879965 |
0.125304948 |
Mountain-200 |
1755 |
0.117951475 |
0.111260823 |
Камера шины для шоссейного велосипеда |
1588 |
0.106727603 |
0.101229538 |
Велосипедная шапочка |
1473 |
0.098998589 |
0.094256014 |
Набор крыльев для велосипедов Mountain |
1415 |
0.095100477 |
0.090718432 |
Держатель фляги для велосипеда Mountain |
1367 |
0.091874454 |
0.087780332 |
Держатель фляги для шоссейного велосипеда |
1195 |
0.080314537 |
0.077173962 |
Функция TopSum принимает результаты этого запроса и возвращает строки с наибольшими значениями, сумма которых составляет заданное число.
SELECT
TopSum
(
Predict([Association].[v Assoc Seq Line Items],INCLUDE_STATISTICS,10),
$PROBABILITY,
.5)
FROM
[Association]
NATURAL PREDICTION JOIN
(SELECT (SELECT 'Women''s Mountain Shorts' as [Model]) AS [v Assoc Seq Line Items]) AS t
Первый аргумент функции TopSum — это имя столбца таблицы. В этом примере для возврата вложенной таблицы нужно вызвать функцию Predict и использовать аргумент INCLUDE_STATISTICS.
Второй аргумент функции TopSum — это столбец вложенной таблицы, используемый для упорядочения результатов. В этом примере параметр INCLUDE_STATISTICS возвращает столбцы $SUPPORT, $PROBABILTY и $ADJUSTED PROBABILITY. Данный пример использует $PROBABILITY для возврата строк, сумма которых составляет 50% вероятности.
Третий аргумент функции TopSum указывает целевую сумму и имеет тип double. Чтобы получить строки для наибольшего произведения, представляющего 50 процентов вероятности, необходимо ввести число 0,5.
Результаты примера:
Модель |
$SUPPORT |
$PROBABILITY |
$ADJUSTEDPROBABILITY |
---|---|---|---|
Sport-100 |
4334 |
0.29… |
0.25… |
Water Bottle |
2866 |
0.19… |
0.17… |
Patch kit |
2113 |
0.14… |
0.13… |
Примечание. Этот пример призван только продемонстрировать использование [TopSum]. В зависимости от размера набора данных выполнение данного запроса может занять значительное время.