Cláusula Group By
Bem-vindo ao curso de SQL Intermediário!
Na primeira seção, será abordado como agrupar e agregar dados em tabelas.
A seguir, uma explicação sobre o que significa "agrupar dados" utilizando um exemplo simples de uma tabela de funcionários:
Agrupamento de Dados
Existe uma tarefa para descobrir o número de funcionários em cada departamento. Para isso, os dados serão agrupados pela coluna department e será utilizada a agregação com a função COUNT(*).
A implementação será a seguinte:
123SELECT department, COUNT(*) AS number_of_employees FROM employees GROUP BY department
Como pode ver, a sintaxe para agrupar dados é a seguinte:
SELECT column1, AGG_FUNC(column2)
FROM table
GROUP BY column1
Nota
AGG_FUNCsignifica funções agregadas comoMAX,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, é necessário agrupar os dados pela coluna department e, em seguida, utilizar a função AVG() para calcular o salário médio:
123SELECT department, AVG(salary) as average_salary FROM employees GROUP BY department
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. Considere onde é possível utilizar agrupamento aqui.
A opção mais evidente é agrupar pelas cores das linhas do metrô. Isso significa que é possível agregar os dados, agrupando-os pela cor da linha do metrô.
Alias
Nas tarefas, frequentemente será utilizado o conceito de 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 esse alias for atribuído. Isso torna a saída mais legível e clara.
Swipe to start coding
Sua tarefa é encontrar o maior tempo até a próxima estação em cada linha. Isso 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_namee o valor máximo da colunatime_to_next_station. - Adicione o alias
max_timepara 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
Obrigado pelo seu feedback!
single
Pergunte à IA
Pergunte à IA
Pergunte o que quiser ou experimente uma das perguntas sugeridas para iniciar nosso bate-papo
Can you explain how GROUP BY works with multiple columns?
What are some common mistakes to avoid when using GROUP BY?
Can you show more examples of aggregate functions with GROUP BY?
Incrível!
Completion taxa melhorada para 4
Cláusula Group By
Deslize para mostrar o menu
Bem-vindo ao curso de SQL Intermediário!
Na primeira seção, será abordado como agrupar e agregar dados em tabelas.
A seguir, uma explicação sobre o que significa "agrupar dados" utilizando um exemplo simples de uma tabela de funcionários:
Agrupamento de Dados
Existe uma tarefa para descobrir o número de funcionários em cada departamento. Para isso, os dados serão agrupados pela coluna department e será utilizada a agregação com a função COUNT(*).
A implementação será a seguinte:
123SELECT department, COUNT(*) AS number_of_employees FROM employees GROUP BY department
Como pode ver, a sintaxe para agrupar dados é a seguinte:
SELECT column1, AGG_FUNC(column2)
FROM table
GROUP BY column1
Nota
AGG_FUNCsignifica funções agregadas comoMAX,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, é necessário agrupar os dados pela coluna department e, em seguida, utilizar a função AVG() para calcular o salário médio:
123SELECT department, AVG(salary) as average_salary FROM employees GROUP BY department
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. Considere onde é possível utilizar agrupamento aqui.
A opção mais evidente é agrupar pelas cores das linhas do metrô. Isso significa que é possível agregar os dados, agrupando-os pela cor da linha do metrô.
Alias
Nas tarefas, frequentemente será utilizado o conceito de 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 esse alias for atribuído. Isso torna a saída mais legível e clara.
Swipe to start coding
Sua tarefa é encontrar o maior tempo até a próxima estação em cada linha. Isso 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_namee o valor máximo da colunatime_to_next_station. - Adicione o alias
max_timepara 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
Obrigado pelo seu feedback!
single