5 tips para mejorar tus habilidades en SQL

Con SQL, es posible realizar consultas sofisticadas a una base de datos para recuperar información específica, como el número de clientes que han comprado un producto en particular, etc

5 tips para mejorar tus habilidades en SQL

Por Lucho Márquez.

Uno de los desafíos que enfrentan las empresas en algún momento, es el de analizar la información disponible para una correcta toma de decisiones. Para esto, es recomendable la creación de un DWH (Data warehouse), centralizando toda la data necesaria para los análisis.

Dentro de estos desarrollos, nos enfrentamos a distintos problemas a la hora de validar la integridad y confiabilidad de los datos, y acá queremos compartirte un par de tips que resultan útiles para estos efectos:

Cuando queremos construir consultas analíticas

1. Evitar el uso de distinct: esto siempre es una solución para “resolver problemas de duplicados”. Por lo general, se utiliza cuando queremos traer combinaciones únicas de registros.

Es una solución “fácil” de implementar, pero, soluciona el problema de manera incorrecta, dado que ocurre principalmente porque no entendemos los datos que estamos analizando y, además, la consulta puede estar procesando una cantidad de datos enorme por cruces mal definidos.

2. Uso de CTEs (common table expression), más conocidos como WITH: personalmente, recomiendo de sobremanera utilizar esta función a la hora de desarrollar consultas analíticas. Es mucho más simple de entender para quien no ha desarrollado el código y debe entenderlo y, por supuesto, más simple de modificar sin cometer algún error. Acá te dejo un ejemplo:


Como pudiste ver en los ejemplos, ambas consultas arrojan el mismo resultado. La gran diferencia se resume en la facilidad con que se entiende y analiza la segunda consulta versus la primera y, además, la comodidad de poder agregar distintos “with” en caso de necesitarlo.

A la hora de validar los resultados

Una tabla / vista analítica tiene que pasar por un proceso de validación y cuadratura de datos. Es el proceso menos querido y que muchas veces nos trae más dolores de cabeza que la misma construcción / desarrollo.

Por esto, les dejo un primer método (básico) de validación. Previo a entrar en los números de manera detallada, es importante conocer y estar seguros de que, al menos, la granularidad de los registros es la correcta.

Como primera validación, debemos definir qué apertura tienen los datos a analizar, y para esto, necesitamos entender qué combinación de campos hacen que cada registro sea único. Ahora les dejo una pequeña consulta que nos dará la seguridad de que estamos en lo correcto, o que tenemos que revisar (en algún punto del desarrollo), los cruces entre las tablas que utilizamos:

Duplicados:

Esta consulta nos arrojará, en caso de existir, sucursales duplicadas en nuestra tabla.

Este es un ejemplo simple, donde no debieran existir dos registros para la misma sucursal, pero aplicado a tablas o vistas analíticas; donde se cruzan tablas para generar una sábana de datos, es recomendable realizar esta validación y tener claridad sobre la granularidad de la data. En el caso de tablas o vistas más complejas, solo se debe cambiar el análisis por la combinación de campos que deben ser únicos. Aquí va un ejemplo:

Si tenemos un análisis que cruza tablas de calificaciones por asignatura, y alumnos por curso, la cardinalidad de dicho análisis debiese ser: un registro para cada alumno, en cada curso, por cada asignatura. En este caso, para la validación de duplicados, no utilizamos el campo calificación, dado que es una métrica calculada, y sólo estamos verificando que la combinación alumno/asignatura sea única.

¿Y tú? ¿Qué otro tips añadirías?