Grupo SQL por data

Grupo Sql Por Data



A cláusula SQL GROUP BY é uma ferramenta poderosa para agrupar e agregar os dados. Ele fornece uma excelente maneira de agrupar os dados com base em critérios específicos e, em seguida, executar uma ação nos grupos resultantes.

Um caso de uso comum para GROUP BY é o agrupamento por datas. Neste tutorial, aprenderemos os fundamentos do trabalho com a cláusula GROUP BY e discutiremos como usá-la para agrupar os dados por datas no SQL.







OBSERVAÇÃO: Presumimos que você tenha um conhecimento básico de SQL. Para fins de demonstração, usamos os exemplos neste tutorial com MySQL 8. No entanto, você pode portar livremente os conceitos deste tutorial para outros mecanismos de banco de dados baseados em SQL.



Tabela de amostra:

O primeiro passo é configurar uma tabela básica e dados de amostra para demonstração. Se você tiver uma tabela existente com a qual deseja trabalhar, sinta-se à vontade para pular esta seção.



Para criar a tabela, use a seguinte consulta:





transações CREATE TABLE (
eu ia int não nulo auto_increment chave primária,
data DATA,
valor DECIMAL ( 10 , 2 )
) ;


Depois de criar a tabela, insira os dados de amostra conforme mostrado a seguir:

INSERT INTO transações ( data , quantia )
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' , 25h00 ) ,
( '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 ) ;


Isso deve adicionar os dados aleatórios à tabela de transações. Podemos usar a instrução select para mostrar a tabela resultante da seguinte forma:



selecionar * de transações;


Tabela de saída:


Depois de preparar os dados, podemos prosseguir para a próxima etapa.

Grupo SQL por data

Como você pode imaginar, usamos a cláusula GROUP BY para particionar os dados em uma determinada tabela com base em valores específicos. A sintaxe da cláusula é a seguinte:

SELECIONE coluna1, coluna2, ...
FROM table_name
GROUP BY coluna1, coluna2, ...;


Na sintaxe anterior, usamos a cláusula GROUP BY para especificar as colunas pelas quais você deseja agrupar os dados.

Da tabela anterior, podemos usar a coluna de data para agrupar os dados conforme mostrado na seguinte consulta:

SELECIONE data , SOMA ( quantia ) como montante total
DE transações
GRUPO POR data ;


A consulta anterior realiza os cálculos básicos e soma o valor total de cada dia usando a função sum(). Em seguida, agrupamos os dados com base nos valores de data. A tabela resultante é a seguinte:

Data do formato

Às vezes, podemos precisar formatar a data e torná-la mais legível. Um exemplo é o seguinte:

SELECT DATE_FORMAT ( data , '%m/%d/%Y' ) como data_formatada, SOMA ( quantia ) como montante total
DE transações
GRUPO POR data ;


Isso deve retornar os valores de data no formato especificado da seguinte forma:

Intervalo de datas do filtro SQL

Também podemos filtrar o conjunto de resultados por um intervalo de datas usando a cláusula WHERE. Um exemplo é o seguinte:

SELECT DATE_FORMAT ( data , '%m/%d/%Y' ) como data_formatada, SOMA ( quantia ) como montante total
DE transações
ONDE data ENTRE '2023-01-01' E '2023-01-15'
GRUPO POR data ;


A tabela resultante é mostrada a seguir:


Aí está! Uma maneira de agrupar os dados de uma determinada tabela com base em valores de data.

Conclusão

Este tutorial explorou os fundamentos do trabalho com a cláusula GROUP BY no SQL para classificar os dados com base em valores específicos. Isso nos permitiu cobrir como usar a cláusula GROUP BY para dividir os dados com base em valores de data.