VAR (Transact-SQL)
Si applica a: SQL Server Database SQL di Azure Istanza gestita di SQL di Azure Azure Synapse Analytics Piattaforma di strumenti analitici (PDW) Endpoint di analisi SQL in Microsoft Fabric Warehouse in Microsoft Fabric
Restituisce lo scostamento statistico di tutti i valori dell'espressione specificata. Può essere seguita dalla clausola OVER.
Convenzioni relative alla sintassi Transact-SQL
Sintassi
-- Aggregate Function Syntax
VAR ( [ ALL | DISTINCT ] expression )
-- Analytic Function Syntax
VAR ([ ALL ] expression) OVER ( [ partition_by_clause ] order_by_clause)
Argomenti
ALL
Applica la funzione a tutti i valori. Il valore predefinito è ALL.
DISTINCT
Consente di considerare ogni valore univoco.
expression
Espressione della categoria di tipi di dati numerici esatti o numerici approssimativi, ad eccezione del tipo di dati bit. Non è possibile utilizzare funzioni di aggregazione e sottoquery.
OVER ( [ partition_by_clause ] order_by_clause)
partition_by_clause suddivide il set di risultati generato dalla clausola FROM in partizioni alle quali viene applicata la funzione. Se non specificato, la funzione tratta tutte le righe del set di risultati della query come un unico gruppo. order_by_clause determina l'ordine logico in cui viene eseguita l'operazione. order_by_clause è obbligatorio. Per altre informazioni, vedere Clausola OVER (Transact-SQL).
Tipi restituiti
float
Osservazioni:
Se la funzione VAR viene applicata a tutte le voci di un'istruzione SELECT, ogni valore nel set di risultati viene incluso nel calcolo. VAR può essere utilizzata solo con colonne numeriche. I valori Null vengono ignorati.
VAR è una funzione deterministica quando viene utilizzata senza le clausole ORDER BY e OVER. Non è deterministica quando viene specificata con le clausole ORDER BY e OVER. Per altre informazioni, vedere Funzioni deterministiche e non deterministiche.
Esempi
A: Utilizzo di VAR
Nell'esempio seguente viene restituita la varianza per tutti i valori bonus nella SalesPerson
tabella nel database AdventureWorks2022.
SELECT VAR(Bonus)
FROM Sales.SalesPerson;
GO
Esempi: Azure Synapse Analytics e Piattaforma di strumenti analitici (PDW)
B: Utilizzo di VAR
L'esempio seguente restituisce la varianza statistica dei valori quota di vendite nella tabella dbo.FactSalesQuota
. La prima colonna contiene la varianza di tutti i valori distinct e la seconda colonna contiene la varianza di tutti i valori, compresi eventuali valori duplicati.
-- Uses AdventureWorks
SELECT VAR(DISTINCT SalesAmountQuota)AS Distinct_Values, VAR(SalesAmountQuota) AS All_Values
FROM dbo.FactSalesQuota;
Il set di risultati è il seguente.
Distinct_Values All_Values
---------------- ----------------
159180469909.18 158762853821.10
C. Utilizzo di VAR con OVER
L'esempio seguente restituisce la varianza statistica dei valori quota di vendite per ogni trimestre in un anno di calendario. Si noti che ORDER BY nella clausola OVER ordina la varianza statistica e ORDER BY dell'istruzione SELECT ordina il set di risultati.
-- 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;
Il set di risultati è il seguente.
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
Vedi anche
Funzioni di aggregazione (Transact-SQL)
Clausola OVER (Transact-SQL)