SUM (Transact-SQL)

Devuelve la suma de todos los valores o sólo de los valores DISTINCT de la expresión. SUM sólo puede utilizarse con columnas numéricas. Los valores Null se pasan por alto. Puede ir seguida de la OVER (cláusula de Transact-SQL).

Icono de vínculo a temasConvenciones de sintaxis de Transact-SQL

Sintaxis

SUM ( [ ALL | DISTINCT ] expression )

Argumentos

  • ALL
    Aplica la función de agregado a todos los valores. ALL es el valor predeterminado.

  • DISTINCT
    Especifica que SUM devuelve la suma de los valores únicos.

  • expression
    Es una constante, columna o función y cualquier combinación de operadores aritméticos, bit a bit y de cadena. expression es una expresión de la categoría del tipo de datos numérico exacto o numérico aproximado, excepto para el tipo de datos bit. No se permiten funciones de agregado ni subconsultas. Para obtener más información, vea Expresiones (Transact-SQL).

Tipos de valor devueltos

Devuelve la suma de todos los valores de expression con el tipo de datos expression más preciso.

Resultado de la expresión

Valor devuelto

tinyint

int

smallint

int

int

int

bigint

bigint

Categoría decimal (p, s)

decimal(38, s)

Categoría money y smallmoney

money

Categoría float y real

float

Ejemplos

A. Utilizar SUM para agregados y agregados de filas

En estos ejemplos se muestran las diferencias entre las funciones de agregado y las funciones de agregado de filas. En el primero se muestran funciones de agregado que sólo ofrecen datos de resumen y en el segundo, funciones de agregado de filas que ofrecen datos de resumen y de detalle.

USE AdventureWorks;
GO
SELECT Color, SUM(ListPrice), SUM(StandardCost)
FROM Production.Product
WHERE Color IS NOT NULL 
    AND ListPrice != 0.00 
    AND Name LIKE 'Mountain%'
GROUP BY Color
ORDER BY Color;
GO

Éste es el conjunto de resultados.

Color                                 
--------------- --------------------- ---------------------
Black           27404.84              15214.9616
Silver          26462.84              14665.6792
White           19.00                 6.7926

(3 row(s) affected)

USE AdventureWorks;
GO
SELECT Color, ListPrice, StandardCost
FROM Production.Product
WHERE Color IS NOT NULL 
    AND ListPrice != 0.00 
    AND Name LIKE 'Mountain%'
ORDER BY Color
COMPUTE SUM(ListPrice), SUM(StandardCost) BY Color;
GO

Éste es el conjunto de resultados.

Color           ListPrice             StandardCost
--------------- --------------------- ---------------------
Black           2294.99               1251.9813
Black           2294.99               1251.9813
Black           2294.99               1251.9813
Black           1079.99               598.4354
Black           1079.99               598.4354
Black           1079.99               598.4354
Black           1079.99               598.4354
Black           3374.99               1898.0944
Black           3374.99               1898.0944
Black           3374.99               1898.0944
Black           3374.99               1898.0944
Black           539.99                294.5797
Black           539.99                294.5797
Black           539.99                294.5797
Black           539.99                294.5797
Black           539.99                294.5797

sum                   sum
--------------------- ---------------------
27404.84              15214.9616

Color           ListPrice             StandardCost
--------------- --------------------- ---------------------
Silver          2319.99               1265.6195
Silver          2319.99               1265.6195
Silver          2319.99               1265.6195
Silver          3399.99               1912.1544
Silver          3399.99               1912.1544
Silver          3399.99               1912.1544
Silver          3399.99               1912.1544
Silver          769.49                419.7784
Silver          769.49                419.7784
Silver          769.49                419.7784
Silver          769.49                419.7784
Silver          564.99                308.2179
Silver          564.99                308.2179
Silver          564.99                308.2179
Silver          564.99                308.2179
Silver          564.99                308.2179

sum                   sum
--------------------- ---------------------
26462.84              14665.6792

Color           ListPrice             StandardCost
--------------- --------------------- ---------------------
White           9.50                  3.3963
White           9.50                  3.3963

sum                   sum
--------------------- ---------------------
19.00                 6.7926

(37 row(s) affected)

B. Calcular totales de grupo con más de una columna

En el siguiente ejemplo se calcula la suma de ListPrice y StandardCost por cada color que aparece en la tabla Product.

USE AdventureWorks;
GO
SELECT Color, SUM(ListPrice), SUM(StandardCost)
FROM Production.Product
GROUP BY Color
ORDER BY Color;
GO

Éste es el conjunto de resultados.

Color                                 
--------------- --------------------- ---------------------
NULL            4182.32               2238.4755
Black           67436.26              38636.5002
Blue            24015.66              14746.1464
Grey            125.00                51.5625
Multi           478.92                272.2542
Red             53274.10              32610.7661
Silver          36563.13              20060.0483
Silver/Black    448.13                198.97
White           36.98                 13.5172
Yellow          34527.29              21507.6521

(10 row(s) affected)

Vea también

Referencia