Agrupar SQL por fecha

Agrupar Sql Por Fecha



La cláusula SQL GROUP BY es una poderosa herramienta para agrupar y agregar datos. Proporciona una excelente manera de agrupar los datos en función de criterios específicos y luego realizar una acción en los grupos resultantes.

Un caso de uso común para GROUP BY es agrupar por fechas. En este tutorial, aprenderemos los fundamentos de trabajar con la cláusula GROUP BY y discutiremos cómo usarla para agrupar los datos por fechas en SQL.







NOTA: Suponemos que tiene un conocimiento básico de SQL. Para fines de demostración, usamos los ejemplos de este tutorial con MySQL 8. Sin embargo, puede trasladar libremente los conceptos de este tutorial a otros motores de bases de datos basados ​​en SQL.



Tabla de muestra:

El primer paso es configurar una tabla básica y datos de muestra para la demostración. Si tiene una tabla existente con la que desea trabajar, no dude en omitir esta sección.



Para crear la tabla, utilice la siguiente consulta:





Transacciones CREAR TABLA (
    identificación int no es nulo auto_increment clave principal,
    fecha FECHA,
cantidad DECIMAL ( 10 , 2 )
) ;

 
Una vez que cree la tabla, inserte los datos de muestra como se muestra a continuación:

INSERTAR EN transacciones ( fecha , cantidad )
VALORES
  ( '2023-01-01' , 100.00 ) ,
  ( '2023-01-02' , 50.00 ) ,
  ( '2023-01-03' , 75.00 ) ,
  ( '2023-01-04' , 200.00 ) ,
  ( '2023-01-05' , 150.00 ) ,
  ( '2023-01-06' , 175.00 ) ,
  ( '2023-01-07' , 50.00 ) ,
  ( '2023-01-08' , 100.00 ) ,
  ( '2023-01-09' , 25.00 ) ,
  ( '2023-01-10' , 75.00 ) ,
  ( '2023-01-11' , 150.00 ) ,
  ( '2023-01-12' , 200.00 ) ,
  ( '2023-01-13' , 250.00 ) ,
  ( '2023-01-14' , 175.00 ) ,
  ( '2023-01-15' , 150.00 ) ,
  ( '2023-01-16' , 100.00 ) ,
  ( '2023-01-17' , 50.00 ) ,
  ( '2023-01-18' , 75.00 ) ;

 
Esto debería agregar los datos aleatorios a la tabla de transacciones. Podemos usar la instrucción select para mostrar la tabla resultante de la siguiente manera:



seleccionar * de transacciones;

 
Tabla de salida:


Una vez que tenemos los datos preparados, podemos pasar al siguiente paso.

Agrupar SQL por fecha

Como puede adivinar, usamos la cláusula GROUP BY para particionar los datos en una tabla determinada en función de valores específicos. La sintaxis de la cláusula es la siguiente:

SELECCIONE columna1, columna2, ...
DESDE table_name
AGRUPAR POR columna1, columna2, ...;

 
En la sintaxis anterior, usamos la cláusula GROUP BY para especificar las columnas por las que desea agrupar los datos.

De la tabla anterior, podemos usar la columna de fecha para agrupar los datos como se muestra en la siguiente consulta:

SELECCIONAR fecha , SUMA ( cantidad ) como cantidad total
DESDE transacciones
AGRUPAR POR fecha ;

 
La consulta anterior realiza los cálculos básicos y suma la cantidad total de cada día usando la función sum(). Luego agrupamos los datos en función de los valores de fecha. La tabla resultante es la siguiente:

Fecha de formato

A veces, es posible que necesitemos formatear la fecha y hacerla más legible. Un ejemplo es el siguiente:

SELECCIONE FECHA_FORMATO ( fecha , '%m/%d/%Y' ) como fecha_formateada, SUMA ( cantidad ) como cantidad total
DESDE transacciones
AGRUPAR POR fecha ;

 
Esto debería devolver los valores de fecha en el formato especificado de la siguiente manera:

Intervalo de fechas del filtro SQL

También podemos filtrar el conjunto de resultados por un rango de fechas utilizando la cláusula WHERE. Un ejemplo es el siguiente:

SELECCIONE FECHA_FORMATO ( fecha , '%m/%d/%Y' ) como fecha_formateada, SUMA ( cantidad ) como cantidad total
DESDE transacciones
DÓNDE fecha ENTRE '2023-01-01' Y '2023-01-15'
AGRUPAR POR fecha ;

 
La tabla resultante se muestra a continuación:


¡Ahí tienes! Una forma de agrupar los datos de una tabla determinada en función de los valores de fecha.

Conclusión

Este tutorial exploró los fundamentos de trabajar con la cláusula GROUP BY en SQL para ordenar los datos en función de valores específicos. Esto nos permitió cubrir cómo usar la cláusula GROUP BY para dividir los datos según los valores de fecha.