Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Dotyczy:SQL Server
Azure SQL Database
Azure SQL Managed Instance
Azure Synapse Analytics
Analytics Platform System (PDW)
Punkt końcowy analizy SQL w usłudze Microsoft Fabric
Hurtownia danych w usłudze Microsoft Fabric
Baza danych SQL w usłudze Microsoft Fabric
Zwraca statystyczną wariancję wszystkich wartości w podanym wyrażeniu. Może być zastąpiona klauzulą OVER.
Transact-SQL konwencje składni
Składnia
-- Aggregate Function Syntax
VAR ( [ ALL | DISTINCT ] expression )
-- Analytic Function Syntax
VAR ([ ALL ] expression) OVER ( [ partition_by_clause ] order_by_clause)
Arguments
WSZYSTKIE
Stosuje tę funkcję do wszystkich wartości. WSZYSTKO jest domyślne.
ODMIENNY
Określa, że każda unikatowa wartość jest brana pod uwagę.
expression
Jest wyrażeniem dokładnej kategorii numerycznej lub przybliżonej kategorii danych numerycznych, z wyjątkiem typu danych bitowych . Funkcje agregowane i podzapytania nie są dozwolone.
KONIEC ( [ partition_by_clause ] order_by_clause)
partition_by_clause dzieli zbiór wyników wytworzony przez klauzulę FROM na partycje, do których funkcja jest stosowana. 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 wymagane. Aby uzyskać więcej informacji, zobacz OVER Clause (Transact-SQL).
Typy zwracane
float
Uwagi
Jeśli VAR jest używany na wszystkich elementach w instrukcji SELECT, każda wartość w zestawie wyników jest uwzględniona w obliczeniach. VAR może być używany wyłącznie z kolumnami numerycznymi. Wartości zerowe są ignorowane.
VAR jest funkcją deterministyczną, gdy używa się bez klauzul OVER i ORDER BY. Jest niedeterministyczna, gdy jest określana klauzulami OVER i ORDER BY. Aby uzyskać więcej informacji, zobacz Funkcje deterministyczne i niedeterministyczne.
Przykłady
O: Wykorzystanie VAR
Poniższy przykład zwraca wariancję dla wszystkich wartości bonusowych w tabeli SalesPerson bazy AdventureWorks2025.
SELECT VAR(Bonus)
FROM Sales.SalesPerson;
GO
Przykłady: Azure Synapse Analytics and Analytics Platform System (PDW)
B: Używanie VAR
Poniższy przykład zwraca statystyczną wariancję wartości kwoty sprzedaży w tabeli dbo.FactSalesQuota. Pierwsza kolumna zawiera wariancję wszystkich różnych wartości, a druga kolumna zawiera wariancję wszystkich wartości, w tym wartości zduplikowanych.
-- Uses AdventureWorks
SELECT VAR(DISTINCT SalesAmountQuota)AS Distinct_Values, VAR(SalesAmountQuota) AS All_Values
FROM dbo.FactSalesQuota;
Oto zestaw wyników.
Distinct_Values All_Values
---------------- ----------------
159180469909.18 158762853821.10
C. Używanie VAR z OVER
Poniższy przykład zwraca statystyczną zmienność wartości kwoty sprzedaży za każdy kwartał roku kalendarzowego. Zauważ, że ORDER BY w klauzuli OVER porządkuje wariancję statystyczną, a ORDER BY w instrukcji SELECT uporządkowuje zbiór wyników.
-- Uses AdventureWorks
SELECT CalendarYear AS Year, CalendarQuarter AS Quarter, SalesAmountQuota AS SalesQuota,
VAR(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 null
2002 2 140000.0000 1200500000.00
2002 3 70000.0000 1290333333.33
2002 4 154000.0000 1580250000.00
Zobacz też
funkcje agregujące (Transact-SQL)
Klauzula OVER (Transact-SQL)