VAR (Transact-SQL)

Aplica-se a:SQL ServerBanco de Dados SQL do AzureInstância Gerenciada de SQL do AzureAzure Synapse AnalyticsPDW (Analytics Platform System)Ponto de extremidade de SQL no Microsoft FabricWarehouse no Microsoft Fabric

Retorna a variância estatística de todos os valores da expressão especificada. Pode ser seguido pela cláusula OVER.

Convenções de sintaxe de Transact-SQL

Sintaxe

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

Observação

Para exibir a sintaxe do Transact-SQL para o SQL Server 2014 (12.x) e versões anteriores, confira a Documentação das versões anteriores.

Argumentos

ALL
Aplica a função a todos os valores. ALL é o padrão.

DISTINTO
Especifica que cada valor exclusivo é considerado.

expressão
É uma expression da categoria de tipo de dados numéricos exatos ou aproximados, com exceção do tipo de dados bit. Funções de agregação e subconsultas não são permitidas.

OVER ( [ partition_by_clause ] order_by_clause)
partition_by_clause divide o conjunto de resultados produzido pela cláusula FROM em partições às quais a função é aplicada. Se não for especificado, a função tratará todas as linhas do conjunto de resultados da consulta como um único grupo. order_by_clause determina a ordem lógica na qual a operação é executada. order_by_clause é obrigatório. Para obter mais informações, confira Cláusula OVER (Transact-SQL).

Tipos de retorno

float

Comentários

Se VAR for usado em todos os itens uma instrução SELECT, cada valor do conjunto de resultados será incluído no cálculo. VAR pode ser usado exclusivamente com colunas numéricas. Valores nulos são ignorados.

VAR é uma função determinística quando usada sem as cláusulas OVER e ORDER BY. É não determinística quando especificada com as cláusulas OVER e ORDER BY. Para obter mais informações, veja Funções determinísticas e não determinísticas.

Exemplos

A: Usando VAR

O exemplo a seguir retorna a variância para todos os valores de gratificação da tabela SalesPerson no banco de dados AdventureWorks2022.

SELECT VAR(Bonus)  
FROM Sales.SalesPerson;  
GO  

Exemplos: Azure Synapse Analytics e PDW (Analytics Platform System)

B: Usando VAR

O exemplo a seguir retorna a variância estatística dos valores de cota de vendas na tabela dbo.FactSalesQuota. A primeira coluna contém a variação de todos os valores distintos e a segunda coluna contém a variação de todos os valores, incluindo valores duplicados.

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

Este é o conjunto de resultados.

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

C. Usando VAR com OVER

O exemplo a seguir retorna a variância estatística dos valores de cota de vendas para cada trimestre em um ano civil. Observe que ORDER BY na cláusula OVER ordena a variação estatística e ORDER BY da instrução SELECT ordena o conjunto de resultados.

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

Este é o conjunto de resultados.

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

Consulte Também

Funções de agregação (Transact-SQL)
Cláusula OVER (Transact-SQL)