Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
GROUP BY | Agrupamento
SQL Intermediário
course content

Conteúdo do Curso

SQL Intermediário

SQL Intermediário

1. Agrupamento
2. Subconsultas Aninhadas
3. Juntando Tabelas
4. DDL e DML em SQL

book
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:

123
SELECT department, COUNT(*) AS number_of_employees FROM employees GROUP BY department
copy

Então, como você pode ver, a sintaxe para agrupar dados é assim:

Nota

AGG_FUNC significa funções de agregação como MAX, 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:

123
SELECT department, AVG(salary) as average_salary FROM employees GROUP BY department
copy

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.

Tarefa
test

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.

Switch to desktopMude para o desktop para praticar no mundo realContinue de onde você está usando uma das opções abaixo
Tudo estava claro?

Como podemos melhorá-lo?

Obrigado pelo seu feedback!

Seção 1. Capítulo 1
toggle bottom row

book
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:

123
SELECT department, COUNT(*) AS number_of_employees FROM employees GROUP BY department
copy

Então, como você pode ver, a sintaxe para agrupar dados é assim:

Nota

AGG_FUNC significa funções de agregação como MAX, 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:

123
SELECT department, AVG(salary) as average_salary FROM employees GROUP BY department
copy

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.

Tarefa
test

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.

Switch to desktopMude para o desktop para praticar no mundo realContinue de onde você está usando uma das opções abaixo
Tudo estava claro?

Como podemos melhorá-lo?

Obrigado pelo seu feedback!

Seção 1. Capítulo 1
Switch to desktopMude para o desktop para praticar no mundo realContinue de onde você está usando uma das opções abaixo
We're sorry to hear that something went wrong. What happened?
some-alt