Esta mañana en clase, me habéis preguntado si al agrupar podemos utilizar rangos de valores para definir los grupos. Mi respuesta ha sido que no. Los grupos se definen en base a valores concretos de los componentes del criterio de agrupación. Pero podemos aplicar un truquillo para conseguir esa agrupación por rangos (a esta técnica se llama SQL Binning).
Uso de CASE como si fuese GROUP BY
AUTORA: María González García
Al realizar cálculos sobre agrupaciones de tuplas según los valores de un campo, podemos plantearnos esta cuestión: ¿deberíamos utilizar GROUP BY
o
CASE
?
Aunque GROUP BY
es generalmente la opción más directa y eficiente para agrupar y calcular datos, existen situaciones donde CASE
puede ofrecer una flexibilidad única y su uso se vuelva necesario. Por otra parte, dicha elección también puede depender de las necesidades visuales o preferencias de formato del resultado a obtener, ya que cada método ofrece una presentación y organización de los datos distinta.
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.
¡Qué útil es la función coalesce!
Es frecuente ver cómo recurrís a usar una estructura case cuando tratáis de evitar que aparezca un valor null en un select y, en su lugar, queréis ver una leyenda alternativa como "valor no disponile". En estos casos es mejor recurrir a la función coalesce. Aquí tenéis un ejemplo: