TopCount (расширения интеллектуального анализа данных)
Область применения: SQL Server Analysis Services
Возвращает заданное в инструкции количество верхних строк в порядке убывания их ранга как указано в выражении.
Синтаксис
TopCount(<table expression>, <rank expression>, <count>)
Применяется к
Выражение, возвращающее таблицу, например ссылку> на <столбец таблицы, или функцию, возвращающую таблицу.
Тип возвращаемых данных
<табличное выражение>
Замечания
Значение, предоставленное аргументом <выражения ранжирования, определяет порядок уменьшения ранга для строк, предоставленных в <аргументе выражения таблицы>, и возвращается число строк верхнего уровня, указанных в аргументе счетчика<>.>
Функция TopCount была первоначально введена для включения ассоциативных прогнозов и в целом создает те же результаты, что и инструкция, включающая предложения SELECT TOP и ORDER BY . Вы получите более высокую производительность для ассоциативных прогнозов, если вы используете функцию Predict (DMX), которая поддерживает спецификацию ряда прогнозов для возврата.
Однако существуют ситуации, когда может потребоваться использовать TopCount. Например, DMX не поддерживает квалификатор TOP в инструкции sub-select. Функция PredictHistogram (DMX) также не поддерживает добавление TOP.
Примеры
В следующих примерах приведены прогнозирующие запросы к модели ассоциации, созданной с помощью учебника по интеллектуальному анализу данных уровня "Базовый". Запросы возвращают те же результаты, но первый пример использует TopCount, а второй пример использует функцию Predict.
Чтобы понять, как работает TopCount, может быть полезно сначала выполнить прогнозирующий запрос, возвращающий только вложенную таблицу.
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
Примечание.
В этом примере значение, заданное в качестве входных данных, содержит знак одинарной кавычки, а значит, его нужно экранировать и добавить перед ним еще один знак кавычки. При отсутствии уверенности в синтаксических конструкциях, используемых для вставки escape-символа, запросы можно создавать с помощью построителя прогнозирующих запросов. При выборе значения из раскрывающегося списка необходимый escape-символ вставляется автоматически. Дополнительные сведения см. в разделе "Создание однотонного запроса" в конструкторе интеллектуального анализа данных.
Пример результатов:
Модель | $SUPPORT | $PROBABILITY | $ADJUSTEDPROBABILITY |
---|---|---|---|
Sport-100 | 4334 | 0.291283016 | 0.252695851 |
Фляга для воды | 2866 | 0.192620472 | 0.175205052 |
Ремонтный комплект | 2113 | 0.142012232 | 0.132389356 |
Камера для горного велосипеда | 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 Bottle Cage | 1367 | 0.091874454 | 0.087780332 |
Дорожный держатель для бутылки | 1195 | 0.080314537 | 0.077173962 |
Функция TopCount принимает результаты этого запроса и возвращает указанное число наименьших строк.
SELECT
TopCount
(
Predict ([Association].[v Assoc Seq Line Items],INCLUDE_STATISTICS,10),
$SUPPORT,
3)
FROM
[Association]
NATURAL PREDICTION JOIN
(SELECT (SELECT 'Women''s Mountain Shorts' as [Model]) AS [v Assoc Seq Line Items]) AS t
Первым аргументом функции TopCount является имя столбца таблицы. В этом примере вложенная таблица возвращается путем вызова функции Predict и использования аргумента INCLUDE_STATISTICS.
Второй аргумент функции TopCount — это столбец в вложенной таблице, используемой для упорядочивания результатов. В этом примере параметр INCLUDE_STATISTICS возвращает столбцы $SUPPORT, $PROBABILTY и $ADJUSTED PROBABILITY. В данном примере используется столбец $SUPPORT для ранжирования результатов.
Третий аргумент функции TopCount указывает количество возвращаемых строк в виде целого числа. Чтобы получить три верхних продукта, упорядоченных по столбцу $SUPPORT, введите 3.
Пример результатов:
Модель | $SUPPORT | $PROBABILITY | $ADJUSTEDPROBABILITY |
---|---|---|---|
Sport-100 | 4334 | 0.29... | 0.25... |
Фляга для воды | 2866 | 0.19... | 0.17... |
Ремонтный комплект | 2113 | 0.14... | 0.13... |
Однако данный тип запроса может повлиять на производительность в производственных условиях. Причина этого заключается в том, что запрос получает из алгоритма полный набор прогнозов, сортирует их и возвращает первые 3.
Следующий пример демонстрирует альтернативную инструкцию, которая возвращает тот же результат, но выполняется значительно быстрее. Этот пример заменяет TopCount функцией Predict, которая принимает ряд прогнозов в качестве аргумента. В этом примере также используется ключевое слово $SUPPORT для непосредственного получения столбца вложенной таблицы.
SELECT Predict ([Association].[v Assoc Seq Line Items], INCLUDE_STATISTICS, 3, $SUPPORT)
Результаты содержат первые 3 прогноза, отсортированные по значению поддержки. Можно заменить $SUPPORT на $PROBABILITY или $ADJUSTED_PROBABILITY, чтобы получить прогнозы, ранжированные по вероятности или скорректированной вероятности. Дополнительные сведения см. в разделе "Прогнозирование(DMX)".
См. также
Функции (расширение интеллектуального анализа данных)
Общие функции прогнозирования (расширение интеллектуального анализа данных)
BottomCount (DMX)
TopPercent (DMX)
TopSum (DMX)