Delen via


VAR (Transact-SQL)

Van toepassing op:SQL ServerAzure SQL DatabaseAzure SQL Managed InstanceAzure Synapse AnalyticsAnalytics Platform System (PDW)SQL Analytics-eindpunt in Microsoft FabricMagazijn in Microsoft FabricSQL-database in Microsoft Fabric

Geeft de statistische variantie van alle waarden in de gespecificeerde uitdrukking terug. Kan gevolgd worden door de OVER-clausule.

Transact-SQL syntaxis-conventies

Syntaxis

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

Arguments

ALLE
Past de functie toe op alle waarden. ALLES is de standaard.

ONDERSCHEIDEND
Hiermee geeft u op dat elke unieke waarde wordt beschouwd.

expressie
Is een uitdrukking van de exacte numerieke of benaderende numerieke datatypecategorie, behalve voor het bitdatatype . Aggregate functies en subqueries zijn niet toegestaan.

OVER ( [ partition_by_clause ] order_by_clause)
partition_by_clause verdeelt de door de FROM-clausule geproduceerde resultaatset in partities waarop de functie wordt toegepast. Als deze niet is opgegeven, behandelt de functie alle rijen van de queryresultatenset als één groep. order_by_clause bepaalt de logische volgorde waarin de bewerking wordt uitgevoerd. order_by_clause is vereist. Zie OVER-component (Transact-SQL) voor meer informatie.

Retourtypen

float

Opmerkingen

Als VAR wordt gebruikt op alle items in een SELECT-instructie, wordt elke waarde in de resultaatset opgenomen in de berekening. VAR kan alleen met numerieke kolommen worden gebruikt. Nulwaarden worden genegeerd.

VAR is een deterministische functie wanneer deze wordt gebruikt zonder de clausules OVER en ORDER BY. Het is niet-deterministisch wanneer het wordt gespecificeerd met de OVER- en ORDER BY-clausules. Zie Deterministische en niet-deterministische functies voor meer informatie.

Voorbeelden

A: Gebruik van VAR

Het volgende voorbeeld geeft de variantie terug voor alle bonuswaarden in de SalesPerson tabel in de AdventureWorks2025-database.

SELECT VAR(Bonus)  
FROM Sales.SalesPerson;  
GO  

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

B: Gebruik van VAR

Het volgende voorbeeld geeft de statistische variantie van de verkoopquotawaarden in de tabel dbo.FactSalesQuotaweer . De eerste kolom bevat de variantie van alle verschillende waarden en de tweede kolom bevat de variantie van alle waarden, inclusief eventuele dubbele waarden.

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

Hier is het resultatenoverzicht.

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

C. VAR gebruiken met OVER

Het volgende voorbeeld geeft de statistische variantie van de verkoopquotawaarden voor elk kwartaal in een kalenderjaar weer terug. Let op dat de ORDER BY in de OVER-clausule de statistische variantie ordent en de ORDER BY van de SELECT-instructie de resultaatset ordent.

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

Hier is het resultatenoverzicht.

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

Zie ook

statistische functies (Transact-SQL)
OVER-component (Transact-SQL)