BottomSum
Возвращает в порядке возрастания ранга нижние строки таблицы, сумма которых является, как минимум, указанным значением.
Синтаксис
BottomSum(<table expression>, <rank expression>, <sum>)
Область применения
Выражение, возвращающее таблицу (например, <table column reference>), или функция, возвращающая таблицу.
Тип возвращаемых данных
<table expression>
Замечания
Функция BottomSum возвращает нижние строки таблицы в порядке возрастания ранга. Ранг основывается на вычисляемом значении аргумента <ранжирующее выражение> для каждой строки; таким образом, сумма значений <ранжирующее выражение> является, как минимум, установленной суммой, которая указывается аргументом <сумма>. BottomSum возвращает наименьшее количество элементов, возможных при соответствии заданному значению суммы.
Примеры
В следующем примере создается прогнозирующий запрос к модели взаимосвязей, построенной с помощью учебника Учебник по основам интеллектуального анализа данных.
Чтобы понять, как работает функция BottomSum, лучше будет сначала выполнить прогнозирующий запрос, который возвращает только вложенную таблицу.
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 |
Функция BottomSum принимает результаты этого запроса и возвращает строки с наименьшими значениями, сумма которых составляет заданное число.
SELECT
BottomSum
(
Predict([Association].[v Assoc Seq Line Items],INCLUDE_STATISTICS,10),
$PROBABILITY,
.1)
FROM
[Association]
NATURAL PREDICTION JOIN
(SELECT (SELECT 'Women''s Mountain Shorts' as [Model]) AS [v Assoc Seq Line Items]) AS t
Первый аргумент функции BottomSum — это имя столбца таблицы. В этом примере для возврата вложенной таблицы нужно вызвать функцию Predict и использовать аргумент INCLUDE_STATISTICS.
Второй аргумент функции BottomSum — это столбец вложенной таблицы, используемый для упорядочения результатов. В этом примере параметр INCLUDE_STATISTICS возвращает столбцы $SUPPORT, $PROBABILTY и $ADJUSTED PROBABILITY. Данный пример использует $PROBABILITY для возврата строк, сумма которых составляет 50% вероятности.
Третий аргумент функции BottomSum указывает целевую сумму и имеет тип double. Чтобы получить строки продуктов с минимальным числом, сумма которых составляет 10 процентов вероятности, необходимо ввести 1.
Пример результатов:
Модель |
$SUPPORT |
$PROBABILITY |
$ADJUSTEDPROBABILITY |
---|---|---|---|
Держатель фляги для шоссейного велосипеда |
1195 |
0.08… |
0.07… |
Держатель фляги для велосипеда Mountain |
1367 |
0.09… |
0.08… |
Примечание. Этот пример приведен только для иллюстрации применения BottomSum. В зависимости от размера набора данных выполнение данного запроса может занять значительное время.