VAR (Transact-SQL)

Gäller för:SQL ServerAzure SQL DatabaseAzure SQL Managed InstanceAzure Synapse AnalyticsAnalysplattformssystem (PDW)SQL-analysslutpunkt i Microsoft FabricLager i Microsoft FabricSQL-databas i Microsoft Fabric

Returnerar den statistiska variansen för alla värden i det specificerade uttrycket. Kan följas av OVER-klausulen.

Transact-SQL syntaxkonventioner

Syntax

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

Arguments

ALL
Applicerar funktionen på alla värden. ALLT är standard.

SÄRSKILD
Anger att varje unikt värde beaktas.

uttryck
Är ett uttryck för den exakta numeriska eller approximativa numeriska datatypkategorin, förutom bitdatatypen . Aggregerade funktioner och delfrågor är inte tillåtna.

ÖVER ( [ partition_by_clause ] order_by_clause)
partition_by_clause delar in resultatmängden som produceras av FROM-satsen i partitioner där funktionen tillämpas. Om det inte anges behandlar funktionen alla rader i frågeresultatuppsättningen som en enda grupp. order_by_clause avgör i vilken logisk ordning åtgärden utförs. order_by_clause krävs. Mer information finns i OVER-satsen (Transact-SQL).

Returtyper

float

Anmärkningar

Om VAR används på alla objekt i en SELECT-sats inkluderas varje värde i resultatuppsättningen i beräkningen. VAR kan endast användas med numeriska kolumner. Nollvärden ignoreras.

VAR är en deterministisk funktion när den används utan klausulerna OVER och ORDER BY. Den är icke-deterministisk när den specificeras med OVER- och ORDER BY-klausulerna. Mer information finns i Deterministiska och nondeterministiska funktioner.

Examples

S: Användning av VAR

Följande exempel returnerar variansen för alla bonusvärden i SalesPerson tabellen i AdventureWorks2025-databasen.

SELECT VAR(Bonus)  
FROM Sales.SalesPerson;  
GO  

Exempel: Azure Synapse Analytics and Analytics Platform System (PDW)

B: Användning av VAR

Följande exempel återger den statistiska variansen för försäljningskvotvärdena i tabellen dbo.FactSalesQuota. Den första kolumnen innehåller variansen för alla olika värden och den andra kolumnen innehåller variansen för alla värden inklusive eventuella dubblettvärden.

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

Här är resultatet.

Distinct_Values   All_Values
----------------  ----------------
159180469909.18   158762853821.10

C. Att använda VAR med OVER

Följande exempel visar den statistiska variansen för försäljningskvotvärdena för varje kvartal under ett kalenderår. Observera att ORDER BY i OVER-klausulen ordnar den statistiska variansen och ORDER BY i SELECT-satsen ordnar resultatuppsättningen.

-- 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;  

Här är resultatet.

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

Se även

Aggregerade funktioner (Transact-SQL)
OVER-klausul (Transact-SQL)