Ir al contenido principal

Entradas

Mostrando las entradas etiquetadas como agregados

Desbordando AVG y SUM: Cuando SQL Server se queda sin dedos para sumar

Entre las múltiples funciones de agregado que nos ofrece SQL Server, nos encontramos con dos que, probablemente junto con COUNT (), son las más usadas: SUM () y AVG (). El resultado que producen ambas parece bastante obvio: SUM() devuelve la suma de valores de la columna que le indiquemos a la función, mientras que AVG() nos devolverá el valor promedio de los datos de la columna deseada. Así pues, si tenemos una tabla de pedidos con la columna Importe, que indica el importe final de cada pedido sin decimales (tipo de datos int), si queremos saber la suma de los importes de todos los pedidos, bastará con realizar la siguiente consulta: SELECT SUM(Importe) FROM dbo.Pedidos; Análogamente, si queremos conocer el valor promedio de los pedidos: SELECT AVG(Importe) FROM dbo.Pedidos; El resultado devuelto por ambas será un entero (int) con la suma y el promedio respectivamente. "Estos números son muy grandes, no sé contar tanto" Estas funciones probabl...

Bug en SQL Server: CASE ejecuta funciones en cláusulas que no cumplen la condición

Hola a todos: En esta ocasión, vamos a ocupar esta nueva entrada en el blog para hablaros de un comportamiento inusual de SQL Server, que ejecuta ciertas funciones en cláusulas de sentencias CASE que no se evalúan a verdadero. El operador CASE CASE, tal y como nos lo decribe la MSDN "evalúa una lista de condiciones y devuelve una de las varias expresiones de resultado posibles". Es decir, nos permite retornar un valor distinto en función de cada uno de los valores posibles que pueda tener el argumento o condición que estemos evaluando. Podemos decirle que nos devuelva un resultado diferente en función del valor de una variable o de expresiones lógicas.