Calcular totales en Laravel usando agregados condicionales

arrow_back Blog

Imagina que tienes una tabla de proyectos con 3 estados diferentes y que deseas saber el número de proyectos en cada estado con una única consulta. Seguramente, si estás empezando en el mundo de Laravel o bases de datos, no sabrás muy bien cómo hacer esto.

Es cierto que podemos realizar una consulta para cada estado con una cláusula where para sacar el count de cada estado, pero si tenemos 3 estados, deberemos hacer 3 consultas, imagina si tienes 10 estados.

Viendo que no es viable realizar una consulta para cada estado, tenemos que buscar la forma de realizar esta tarea en una única consulta de la forma más eficiente.

Mi recomendación para calcular totales en Laravel es utilizar agregados condicionales, en este caso a través de una cláusula case when then de la siguiente forma.

En el caso anterior la consulta retornará únicamente 2 columnas generadas de forma dinámica a través de operaciones contra la columna banned de la tabla users. notBanned retornará el número de usuarios no baneados y banned retornará el número de usuarios baneados en nuestro sitio.

Como puedes ver, esto es mucho más eficiente que realizar una consulta para cada estado ya que en una misma consulta podemos obtener todos los resultados.

Cursosdesarrolloweb Cursosdesarrolloweb

Cursosdesarrolloweb es una plataforma educativa con cursos y tutoriales en texto y vídeo.

Términos y condiciones Política de privacidad Formulario de contacto

Copyright 2022 © Todos los derechos reservados.