Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Aprenda Cláusula Group By | Agrupamento
SQL Intermediário

bookCláusula Group By

Bem-vindo ao curso de SQL Intermediário!

Na primeira seção, vamos explorar como agrupar e agregar dados em nossas tabelas.

Vamos entender o que significa "agrupar dados" usando um exemplo simples de uma tabela de funcionários:

Agrupando Dados

Temos a tarefa de descobrir o número de funcionários em cada departamento. Para isso, vamos agrupar os dados pela coluna department e utilizar agregação com a função COUNT(*).

Veja como será a implementação:

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

Como você pode ver, a sintaxe para agrupar dados é a seguinte:

SELECT column1, AGG_FUNC(column2)
FROM table
GROUP BY column1

Nota

AGG_FUNC significa funções agregadoras como MAX, MIN, COUNT, etc.

Esta sintaxe existe para encontrar determinados valores utilizando funções agregadas 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 então 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

Nesta parte da seção, trabalharemos com o banco de dados do sistema de metrô de Montreal, que contém a tabela metro_travel_time.

Esta tabela conterá informações sobre a linha da estação (line_name), seu nome (station_name) e o tempo necessário para um trem viajar de uma estação para a próxima (time_to_next_station).

Veja como é essa tabela e a visualização dos dados nela:

Como pode ser observado, esta não é uma tabela complexa. Vamos analisar onde podemos utilizar agrupamento aqui.

A opção mais evidente é agrupar pelas cores das linhas do metrô. Isso significa que podemos agregar os dados, agrupando-os pela cor da linha do metrô.

Alias

Nos exercícios, você frequentemente utilizará um conceito chamado alias. Um alias é basicamente um "apelido" para uma coluna recuperada com uma instrução SELECT. Ele é especificado utilizando a seguinte sintaxe:

SELECT column AS alias

Um alias afeta apenas como a coluna aparece na resposta.

Por exemplo, em vez de MAX(time), a coluna pode ser chamada de max_time se você atribuir esse alias. Isso torna a saída mais legível e clara.

Tarefa

Swipe to start coding

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 estações para cada linha do metrô. Para isso, utilize a função MAX() e atribua o alias max_time, agrupando os dados pela coluna line_name.

Instruções Resumidas

  • Recupere a coluna line_name e o valor máximo da coluna time_to_next_station.
  • Adicione o alias max_time para o valor máximo.
  • Agrupe os dados pela coluna line_name.

Após concluir esta tarefa, clique no botão abaixo do código para verificar sua solução.

Solução

Tudo estava claro?

Como podemos melhorá-lo?

Obrigado pelo seu feedback!

Seção 1. Capítulo 1
single

single

Pergunte à IA

expand

Pergunte à IA

ChatGPT

Pergunte o que quiser ou experimente uma das perguntas sugeridas para iniciar nosso bate-papo

Suggested prompts:

What are some other aggregate functions I can use with GROUP BY?

Can you explain how GROUP BY works with multiple columns?

Can you show an example using the Montreal Metro table?

close

Awesome!

Completion rate improved to 4

bookCláusula Group By

Deslize para mostrar o menu

Bem-vindo ao curso de SQL Intermediário!

Na primeira seção, vamos explorar como agrupar e agregar dados em nossas tabelas.

Vamos entender o que significa "agrupar dados" usando um exemplo simples de uma tabela de funcionários:

Agrupando Dados

Temos a tarefa de descobrir o número de funcionários em cada departamento. Para isso, vamos agrupar os dados pela coluna department e utilizar agregação com a função COUNT(*).

Veja como será a implementação:

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

Como você pode ver, a sintaxe para agrupar dados é a seguinte:

SELECT column1, AGG_FUNC(column2)
FROM table
GROUP BY column1

Nota

AGG_FUNC significa funções agregadoras como MAX, MIN, COUNT, etc.

Esta sintaxe existe para encontrar determinados valores utilizando funções agregadas 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 então 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

Nesta parte da seção, trabalharemos com o banco de dados do sistema de metrô de Montreal, que contém a tabela metro_travel_time.

Esta tabela conterá informações sobre a linha da estação (line_name), seu nome (station_name) e o tempo necessário para um trem viajar de uma estação para a próxima (time_to_next_station).

Veja como é essa tabela e a visualização dos dados nela:

Como pode ser observado, esta não é uma tabela complexa. Vamos analisar onde podemos utilizar agrupamento aqui.

A opção mais evidente é agrupar pelas cores das linhas do metrô. Isso significa que podemos agregar os dados, agrupando-os pela cor da linha do metrô.

Alias

Nos exercícios, você frequentemente utilizará um conceito chamado alias. Um alias é basicamente um "apelido" para uma coluna recuperada com uma instrução SELECT. Ele é especificado utilizando a seguinte sintaxe:

SELECT column AS alias

Um alias afeta apenas como a coluna aparece na resposta.

Por exemplo, em vez de MAX(time), a coluna pode ser chamada de max_time se você atribuir esse alias. Isso torna a saída mais legível e clara.

Tarefa

Swipe to start coding

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 estações para cada linha do metrô. Para isso, utilize a função MAX() e atribua o alias max_time, agrupando os dados pela coluna line_name.

Instruções Resumidas

  • Recupere a coluna line_name e o valor máximo da coluna time_to_next_station.
  • Adicione o alias max_time para o valor máximo.
  • Agrupe os dados pela coluna line_name.

Após concluir esta tarefa, clique no botão abaixo do código para verificar sua solução.

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!

close

Awesome!

Completion rate improved to 4
Seção 1. Capítulo 1
single

single

some-alt