DEV Community

Rafaela Carvalho
Rafaela Carvalho

Posted on

Ordenando e Agrupando seus Dados no SQL

Olá a todos! Hoje, vamos explorar duas das cláusulas mais importantes em SQL: ORDER BY e GROUP BY. Essas cláusulas nos permitem ordenar e agrupar nossos dados.

1. ORDER BY

A cláusula ORDER BY nos permite ordenar os resultados de uma consulta em ordem crescente (ASC) ou decrescente (DESC), baseado nos valores de uma ou mais colunas. Por exemplo:

SELECT * FROM Alunos ORDER BY Idade ASC;
Enter fullscreen mode Exit fullscreen mode

Este comando irá retornar todos os alunos ordenados por idade em ordem crescente. Se quiséssemos em ordem decrescente, simplesmente substituímos ASC por DESC.

Podemos também ordenar por várias colunas. Por exemplo:

SELECT * FROM Alunos ORDER BY Curso ASC, Idade DESC;
Enter fullscreen mode Exit fullscreen mode

Neste caso, os alunos são primeiramente ordenados pelo nome do curso em ordem crescente. Dentro de cada curso, os alunos são ordenados por idade em ordem decrescente.

2. GROUP BY

A cláusula GROUP BY nos permite agrupar linhas que têm os mesmos valores em colunas específicas. Veja este exemplo:

SELECT Curso, COUNT(*) FROM Alunos GROUP BY Curso;
Enter fullscreen mode Exit fullscreen mode

Esta consulta retornará o número de alunos em cada curso. Neste caso, a função agregada COUNT(*) conta o número de alunos em cada "grupo" de cursos.

GROUP BY deve ser obrigatoriamente usado com funções de agregação como COUNT(*), MAX(), MIN(), AVG(), e SUM(). Estas funções realizam cálculos sobre cada grupo de linhas.

Por exemplo, para encontrar a idade média dos alunos em cada curso, poderíamos usar:

SELECT Curso, AVG(Idade) FROM Alunos GROUP BY Curso;
Enter fullscreen mode Exit fullscreen mode

Aprender a usar ORDER BY e GROUP BY é fundamental para trabalhar efetivamente com SQL. Essas cláusulas permitem que você manipule seus dados de maneiras poderosas, facilitando a análise e o entendimento de grandes conjuntos de dados. Continue praticando e explorando o que você pode fazer com ORDER BY e GROUP BY.

Top comments (0)