Conteúdo do Curso
SQL Intermediário
SQL Intermediário
GROUP BY
Olá! Bem-vindo(a) ao curso SQL Intermediário!
Na primeira seção, vamos mergulhar em como podemos agrupar e agregar dados dentro das nossas tabelas.
Vamos entender o que significa "agrupar dados" usando um exemplo simples de uma tabela de funcionários:
Agora, vamos imaginar que temos uma tarefa para "descobrir o número de funcionários em cada departamento." Para fazer isso, vamos agrupar os dados pela coluna department
e usar a agregação com a função COUNT(*)
.
Eis como será a implementação:
SELECT department, COUNT(*) AS number_of_employees FROM employees GROUP BY department
Então, como você pode ver, a sintaxe para agrupar dados é assim:
Nota
AGG_FUNC
significa funções de agregação comoMAX
,MIN
,COUNT
, etc.
Esta sintaxe existe para encontrar certos valores usando funções de agregação em colunas específicas.
Vamos considerar outro exemplo: recebemos a tarefa de encontrar o departamento com o maior salário médio.
Para recuperar esses dados, precisamos agrupar os dados pela coluna department
e depois usar a função AVG()
para calcular o salário médio:
SELECT department, AVG(salary) as average_salary FROM employees GROUP BY department
Note
Observe que não utilizaremos esta tabela em atribuições; a tabela
employees
será usada exclusivamente para demonstrar exemplos de sintaxe e seu uso.
Neste curso, trabalharemos com o banco de dados do sistema de metrô de Montreal, que contém a tabela metro_travel_time
.
Essa tabela conterá informações sobre a linha da estação(line_name
), seu nome(station_name
), e a quantidade de tempo que um trem leva para viajar de uma estação para a próxima(time_to_next_station
).
Aqui está a aparência desta tabela e a prévia dos dados que ela contém:
Como podem ver, esta não é uma tabela complexa. Vamos pensar onde podemos usar agrupamento aqui.
A opção mais óbvia é agrupar pelas cores das linhas do metrô. Isso significa que podemos agregar os dados, agrupando-os pela cor da linha do metrô.
Agora, vamos praticar o agrupamento completando uma tarefa.
Swipe to show code editor
Sua tarefa é encontrar o maior tempo até a próxima estação em cada linha. Isso nos permitirá determinar o maior tempo de viagem entre as estações para cada linha de metrô. Para fazer isso, use a função MAX()
e a apelide como max_time
, agrupando os dados pela coluna line_name
.
Uma vez completada esta tarefa, clique no botão abaixo do código para verificar sua solução.
Obrigado pelo seu feedback!
GROUP BY
Olá! Bem-vindo(a) ao curso SQL Intermediário!
Na primeira seção, vamos mergulhar em como podemos agrupar e agregar dados dentro das nossas tabelas.
Vamos entender o que significa "agrupar dados" usando um exemplo simples de uma tabela de funcionários:
Agora, vamos imaginar que temos uma tarefa para "descobrir o número de funcionários em cada departamento." Para fazer isso, vamos agrupar os dados pela coluna department
e usar a agregação com a função COUNT(*)
.
Eis como será a implementação:
SELECT department, COUNT(*) AS number_of_employees FROM employees GROUP BY department
Então, como você pode ver, a sintaxe para agrupar dados é assim:
Nota
AGG_FUNC
significa funções de agregação comoMAX
,MIN
,COUNT
, etc.
Esta sintaxe existe para encontrar certos valores usando funções de agregação em colunas específicas.
Vamos considerar outro exemplo: recebemos a tarefa de encontrar o departamento com o maior salário médio.
Para recuperar esses dados, precisamos agrupar os dados pela coluna department
e depois usar a função AVG()
para calcular o salário médio:
SELECT department, AVG(salary) as average_salary FROM employees GROUP BY department
Note
Observe que não utilizaremos esta tabela em atribuições; a tabela
employees
será usada exclusivamente para demonstrar exemplos de sintaxe e seu uso.
Neste curso, trabalharemos com o banco de dados do sistema de metrô de Montreal, que contém a tabela metro_travel_time
.
Essa tabela conterá informações sobre a linha da estação(line_name
), seu nome(station_name
), e a quantidade de tempo que um trem leva para viajar de uma estação para a próxima(time_to_next_station
).
Aqui está a aparência desta tabela e a prévia dos dados que ela contém:
Como podem ver, esta não é uma tabela complexa. Vamos pensar onde podemos usar agrupamento aqui.
A opção mais óbvia é agrupar pelas cores das linhas do metrô. Isso significa que podemos agregar os dados, agrupando-os pela cor da linha do metrô.
Agora, vamos praticar o agrupamento completando uma tarefa.
Swipe to show code editor
Sua tarefa é encontrar o maior tempo até a próxima estação em cada linha. Isso nos permitirá determinar o maior tempo de viagem entre as estações para cada linha de metrô. Para fazer isso, use a função MAX()
e a apelide como max_time
, agrupando os dados pela coluna line_name
.
Uma vez completada esta tarefa, clique no botão abaixo do código para verificar sua solução.
Obrigado pelo seu feedback!