O grupo por cláusula no SQL permite agregar um conjunto de linhas que têm o mesmo valor em uma única entidade/grupo. Pense nisso como uma maneira de resumir um conjunto de linhas com valores semelhantes em uma partição.
Por exemplo, podemos categorizar todos os vídeos do mesmo canal do YouTube em um único grupo. Muitas vezes, você encontrará o grupo por cláusula usada em conjunto com outras funções agregadas, como Max, Sum, AVG, etc.
Embora o grupo por cláusula seja auto-explicativo, não pode ser fácil quando você precisa agrupar dados por semana.
Grupo SQL por semana
Suponha que você tenha uma tabela contendo as informações mostradas abaixo:
Criar funcionários da tabela (
Id Id Serial Primary Key,
Full_name Varchar (255),
Email Varchar (255),
Departamento Varchar (100),
start_date data,
BOOL ativo,
Categoria Varchar (50)
);
Insira nos funcionários (Full_Name, email, departamento, start_date, ativo, categoria)
Valores
('Meghan Edwards', '
[email protected] ',' Development de jogo ',' 2016-06-22 ', verdadeiro,' dev-g1 '),
('Sam Davis', '
[email protected] ',' Development de jogo ',' 2014-01-04 ', false,' dev-g1 '),
('Taylor Miller', '
[email protected] ',' Development Game ',' 2019-10-06 ', True,' Dev-G1 '),
('Wilson Smitty', '
[email protected] ',' Database Developer ',' 2016-12-23 ', true,' dev-db1 '),
('Barbara Moore', '
[email protected] ',' Desenvolvedor de banco de dados ',' 2015-12-23 ', true,' dev-db1 '),
('Raj Chan', '
[email protected] ',' Database Developer ',' 2017-12-23 ', false,' dev-db1 '),
('Susan Brown', '
[email protected] ',' DevOps Engineer ',' 2011-12-23 ', True,' Dev-OPS1 '),
('Marial Anderson', '
[email protected] ',' DevOps Engineer ',' 2015-12-23 ', True,' Dev-OPS1 '),
('Nancy Thomas', '
[email protected] ',' DevOps Engineer ',' 2014-12-23 ', false,' Dev-OPS1 ');
Para agrupar os dados acima com base na semana, podemos usar a função de extrato no SQL. O Extract () permite extrair uma parte específica de uma data.
A sintaxe é como mostrado:
Extrato (parte da data);
Portanto, para extrair a semana a partir de uma data, podemos passar no parâmetro da peça como semana seguida pela data literal.
Considere um exemplo abaixo:
Selecione Extract (semana do Timestamp '2022-04-08 15:57:54.937148+03 ');
Nota: O exemplo acima é ilustrado usando o PostgreSQL. Em alguns bancos de dados, você não precisa especificar a cláusula de.
A consulta acima deve retornar:
EXTRAIR
---------
14
Portanto, o registro de data e hora acima é da semana 14 do ano.
Podemos passar esse valor para o grupo por cláusula, como mostrado:
Selecione
Extract (semana de start_date) como semana,
Contagem (id) como id
De funcionários
Grupo por extrato (semana de start_date);
Isso deve retornar:
Fechamento
Este guia mostrou como usar o grupo por cláusula no SQL e a função de extrato para os registros de grupo com base na semana.