TopCount (DMX)

platí pro: Analytické služby SQL Serveru

Vrací určený počet nejvyšších řádků v sestupném pořadí podle pořadí, jak je dáno výrazem.

Syntax

  
TopCount(<table expression>, <rank expression>, <count>)  

Platí pro

Výraz, který vrací tabulku, například <sloupcový odkaz> v tabulce, nebo funkci, která vrací tabulku.

Návratový typ

<Vyjádření v tabulce>

Remarks

Hodnota poskytnutá argumentem <výrazu> hodnosti určuje klesající pořadí řádků uvedených v <argumentu výrazu> tabulky a vrací se počet nejvyšších řádků specifikovaných v argumentu <počtu> .

Funkce TopCount byla původně zavedena pro umožnění asociativních predikcí a obecně dává stejné výsledky jako tvrzení obsahující klauzule SELECT TOP a ORDER BY . Lepší výkon pro asociativní predikce dosáhnete, pokud použijete funkci Predikce (DMX), která podporuje specifikaci určitého počtu předpovědí pro vrácení.

Nicméně jsou situace, kdy možná budete muset TopCount stále používat. Například DMX nepodporuje kvalifikátor TOP v příkazu sub-select. Funkce PredictHistogram (DMX) také nepodporuje přidání TOP.

Examples

Následující příklady jsou predikční dotazy proti modelu asociace, které vytváříte pomocí Základního tutoriálu pro dolování dat. Dotazy vracejí stejné výsledky, ale první příklad používá TopCount a druhý příklad používá funkci Predikt.

Pro pochopení fungování TopCount může být užitečné nejprve spustit predikční dotaz, který vrací pouze vnořenou tabulku.

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  

Note

V tomto příkladu obsahuje hodnota zadaná jako vstup jednu uvozovku, a proto ji je třeba předejít dalším jediným uvozovkovým znakem. Pokud si nejste jisti syntaxí pro vložení escape znaku, můžete použít Prediction Query Builder k vytvoření dotazu. Když vyberete hodnotu z rozbalovacího seznamu, vloží se za vás požadovaná postava úniku. Pro více informací viz Vytvořit dotaz pro jednorázové dotazy v návrháři dolování dat.

Příklady výsledků:

Model $SUPPORT $PROBABILITY $ADJUSTEDPROBABILITY
Sport-100 4334 0.291283016 0.252695851
Láhev vody 2866 0.192620472 0.175205052
Opravná sada 2113 0.142012232 0.132389356
Mountain Tire Tube 1992 0.133879965 0.125304948
Mountain-200 1755 0.117951475 0.111260823
Silniční dušice 1588 0.106727603 0.101229538
Cyklistická čepice 1473 0.098998589 0.094256014
Fender Set - Horský 1415 0.095100477 0.090718432
Držák láhve na kolo do terénu 1367 0.091874454 0.087780332
Silniční lahvová klec 1195 0.080314537 0.077173962

Funkce TopCount bere výsledky tohoto dotazu a vrací zadaný počet nejmenších řádků.

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  

Prvním argumentem funkce TopCount je název sloupce tabulky. V tomto příkladu se vnořená tabulka vrátí voláním funkce Predikce a použitím argumentu INCLUDE_STATISTICS.

Druhým argumentem funkce TopCount je sloupec v vnořené tabulce, který používáte k pořadí výsledků. V tomto příkladu volba INCLUDE_STATISTICS vrací sloupce $SUPPORT, $PROBABILITY a $ADJUSTED PRAVDĚPODOBNOST. Tento příklad používá $SUPPORT k seřazení výsledků.

Třetí argument k funkci TopCount určuje počet řádků, které je třeba vrátit, jako celé číslo. Pro získání třech nejlepších produktů, jak je objednal $SUPPORT, zadáte 3.

Příklady výsledků:

Model $SUPPORT $PROBABILITY $ADJUSTEDPROBABILITY
Sport-100 4334 0.29... 0.25...
Láhev vody 2866 0.19... 0.17...
Opravná sada 2113 0.14... 0.13...

Tento typ dotazu však může ovlivnit výkon v produkčním prostředí. Je to proto, že dotaz vrací množinu všech predikcí z algoritmu, třídí tyto předpovědi a vrací první tři.

Následující příklad poskytuje alternativní tvrzení, které vrací stejné výsledky, ale provádí se výrazně rychleji. Tento příklad nahrazuje TopCount funkcí Predict, která přijímá řadu predikcí jako argument. Tento příklad také používá klíčové slovo $SUPPORT k přímému načtení vnořeného sloupce tabulky.

SELECT Predict ([Association].[v Assoc Seq Line Items], INCLUDE_STATISTICS, 3, $SUPPORT)  

Výsledky obsahují tři nejlepší předpovědi seřazené podle hodnoty podpory. Můžete $SUPPORT nahradit $PROBABILITY nebo $ADJUSTED_PROBABILITY a vrátit tak předpovědi seřazené podle pravděpodobnosti nebo upravené pravděpodobnosti. Další informace naleznete v tématu Predict (DMX).