VAR (Transact-SQL)
Se aplica a: SQL Server Azure SQL Database Azure SQL Managed Instance Azure Synapse Analytics Analytics Platform System (PDW) Punto de conexión de análisis SQL en Microsoft Fabric Almacenamiento en Microsoft Fabric
Devuelve la varianza estadística de todos los valores de la expresión especificada. Puede ir seguida de la cláusula OVER.
Convenciones de sintaxis de Transact-SQL
Sintaxis
-- Aggregate Function Syntax
VAR ( [ ALL | DISTINCT ] expression )
-- Analytic Function Syntax
VAR ([ ALL ] expression) OVER ( [ partition_by_clause ] order_by_clause)
Argumentos
ALL
Aplica la función a todos los valores. ALL es el valor predeterminado.
DISTINCT
Especifica que se tiene en cuenta cada valor único.
expression
Es una expresión de la categoría de tipos de datos numérico exacto o numérico aproximado, excepto para el tipo de datos bit. No se permiten funciones de agregado ni subconsultas.
OVER ( [ partition_by_clause ] order_by_clause)
partition_by_clause divide el conjunto de resultados generado por la cláusula FROM en particiones a las que se aplica la función. Si no se especifica, la función trata todas las filas del conjunto de resultados de la consulta como un único grupo. order_by_clause determina el orden lógico en el que se realiza la operación. order_by_clause es obligatorio. Para más información, vea Cláusula OVER (Transact-SQL).
Tipos de valor devuelto
float
Comentarios
Si se utiliza VAR en todos los elementos de una instrucción SELECT, cada valor del conjunto de resultados se incluye en el cálculo. VAR solo se puede utilizar con columnas numéricas. Se omiten los valores NULL.
VAR es una función determinista cuando se utiliza sin las cláusulas OVER y ORDER BY. Es no determinista si se especifica con las cláusulas OVER y ORDER BY. Para obtener más información, consulte Deterministic and Nondeterministic Functions.
Ejemplos
A. Usar VAR
En el ejemplo siguiente se devuelve la varianza de todos los valores de bonificación de la tabla SalesPerson
de la base de datos AdventureWorks2022.
SELECT VAR(Bonus)
FROM Sales.SalesPerson;
GO
Ejemplos: Azure Synapse Analytics y Sistema de la plataforma de análisis (PDW)
B. Usar VAR
En este ejemplo se devuelve la varianza estadística de los valores de cuota de ventas de la tabla dbo.FactSalesQuota
. La primera columna contiene la varianza de todos los valores distintos y la segunda columna contiene la varianza de todos los valores, incluidos los valores duplicados.
-- Uses AdventureWorks
SELECT VAR(DISTINCT SalesAmountQuota)AS Distinct_Values, VAR(SalesAmountQuota) AS All_Values
FROM dbo.FactSalesQuota;
Este es el conjunto de resultados.
Distinct_Values All_Values
---------------- ----------------
159180469909.18 158762853821.10
C. Usar VAR con OVER
En este ejemplo se devuelve la varianza estadística de las cuotas de ventas para cada trimestre de un año natural. Observe que ORDER BY en la cláusula OVER ordena la varianza estadística y ORDER BY de la instrucción SELECT ordena el 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 es el 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 también
Funciones de agregado (Transact-SQL)
Cláusula OVER (Transact-SQL)