Mostrando entradas con la etiqueta count. Mostrar todas las entradas
Mostrando entradas con la etiqueta count. Mostrar todas las entradas

Abusos de la estructura case de SQL

AUTOR: Mateo Domínguez Gómez

El uso de la estructura CASE en consultas SQL puede ser una herramienta poderosa para obtener diferentes resultados en función de un conjunto de condiciones. Sin embargo, en ocasiones se puede abusar de su uso, lo que puede llevar a código menos eficiente o incluso incorrecto.

En esta entrada, exploraremos tres ejemplos comunes de abuso de la estructura CASE y cómo evitarlos para mejorar la claridad y eficiencia de nuestras consultas.

Se puede usar case para contar/sumar cosas que cumplan una determinada condición

Aunque la mejor forma de hacer consultas con funciones de agregación (cuenta, suma…) es usando group by, en ocasiones basta con usar una cláusula case dentro de la función de agregación. 

Pensar bien si hay que contar con distinct o sin él

Contar parece fácil. Pero hay que asegurarse de que no se cuentan valores repetidos, salvo que sea necesario. Este es un fallo frecuente. Lo estudiamos con unos sencillos ejemplos. 

No hace falta usar coalesce con count

En algunos ejemplos de agrupaciones, por ejemplo sobre el resultado de un outer join, hemos usado coalesce para evitar que aparezca un valor null como resultado de alguna función de agrupación sobre un grupo de valores que son todos nulos. 

Por ejemplo: la expresión sum(salario) devuelve null si todos los valores del campo salario en el grupo son null; pero coalesce(sum(salario), 0) devuelve 0.

Lo anterior no es necesario si la función de agrupación es count. La función count ya devuelve 0 si todos los valores contados son null