Udostępnij za pomocą


VARP (Transact-SQL)

Dotyczy:SQL ServerAzure SQL DatabaseAzure SQL Managed InstanceAzure Synapse AnalyticsAnalytics Platform System (PDW)Punkt końcowy analizy SQL w usłudze Microsoft FabricHurtownia danych w usłudze Microsoft FabricBaza danych SQL w usłudze Microsoft Fabric

Zwraca wariancję statystyczną dla populacji dla wszystkich wartości w określonym wyrażeniu.

Transact-SQL konwencje składni

Składnia

-- Aggregate Function Syntax   
VARP ( [ ALL | DISTINCT ] expression )  
  
-- Analytic Function Syntax  
VARP ([ ALL ] expression) OVER ( [ partition_by_clause ] order_by_clause)  

Argumenty (w programowaniu)

WSZYSTKIE
Stosuje funkcję do wszystkich wartości. All jest wartością domyślną.

ODMIENNY
Określa, że każda unikatowa wartość jest brana pod uwagę.

wyrażenie
Jest wyrażeniem dokładnej lub przybliżonej kategorii typu danych liczbowych, z wyjątkiem typu danych bitowych . Funkcje agregujące i podzapytania nie są dozwolone.

KONIEC ( [ partition_by_clause ] order_by_clause)
partition_by_clause dzieli zestaw wyników generowany przez klauzulę FROM na partycje, do których jest stosowana funkcja. Jeśli nie zostanie określony, funkcja traktuje wszystkie wiersze zestawu wyników zapytania jako pojedynczą grupę. order_by_clause określa kolejność logiczną, w której jest wykonywana operacja. order_by_clause jest wymagany. Aby uzyskać więcej informacji, zobacz OVER Clause (Transact-SQL).

Typy zwracane

spławik

Uwagi

Jeśli funkcja VARP jest używana we wszystkich elementach instrukcji SELECT, każda wartość w zestawie wyników jest uwzględniana w obliczeniach. VarP można używać tylko z kolumnami liczbowymi. Wartości null są ignorowane.

VARP to funkcja deterministyczna, która jest używana bez klauzul OVER i ORDER BY. Jest on niedeterministyczny, jeśli jest określony z klauzulami OVER i ORDER BY. Aby uzyskać więcej informacji, zobacz Funkcje deterministyczne i niedeterministyczne.

Przykłady

1: Używanie funkcji VARP

Poniższy przykład zwraca wariancję populacji dla wszystkich wartości bonusowych w tabeli SalesPerson bazy AdventureWorks2025.

SELECT VARP(Bonus)  
FROM Sales.SalesPerson;  
GO  

Przykłady: Azure Synapse Analytics and Analytics Platform System (PDW)

B: Korzystanie z varp

Poniższy przykład zwraca VARP wartości limitu przydziału sprzedaży w tabeli dbo.FactSalesQuota. Pierwsza kolumna zawiera wariancję wszystkich odrębnych wartości, a druga kolumna zawiera wariancję wszystkich wartości, w tym wszelkie zduplikowane wartości.

-- Uses AdventureWorks  
  
SELECT VARP(DISTINCT SalesAmountQuota)AS Distinct_Values, VARP(SalesAmountQuota) AS All_Values  
FROM dbo.FactSalesQuota;  

Oto zestaw wyników.

Distinct_Values   All_Values
----------------  ----------------
158146830494.18   157788848582.94

C. Używanie funkcji VARP z funkcją OVER

Poniższy przykład zwraca VARP wartości limitu przydziału sprzedaży dla każdego kwartału w roku kalendarzowym. Zwróć uwagę, że klauzula ORDER BY w klauzuli OVER porządkuje wariancję statystyczną i ORDER BY instrukcji SELECT porządkuje zestaw wyników.

-- Uses AdventureWorks  
  
SELECT CalendarYear AS Year, CalendarQuarter AS Quarter, SalesAmountQuota AS SalesQuota,  
       VARP(SalesAmountQuota) OVER (ORDER BY CalendarYear, CalendarQuarter) AS Variance  
FROM dbo.FactSalesQuota  
WHERE EmployeeKey = 272 AND CalendarYear = 2002  
ORDER BY CalendarQuarter;  

Oto zestaw wyników.

Year  Quarter  SalesQuota              Variance
----  -------  ----------------------  -------------------
2002  1         91000.0000             0.00
2002  2        140000.0000             600250000.00
2002  3         70000.0000             860222222.22
2002  4        154000.0000             1185187500.00

Zobacz też

funkcje agregujące (Transact-SQL)
OVER, klauzula (Transact-SQL)