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


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. В зависимости от размера набора данных выполнение данного запроса может занять значительное время.