Este artigo explica a visão geral completa das cláusulas GROUP BY e ORDER BY. Eles são usados principalmente para organizar dados obtidos por consultas SQL. A diferença entre essas cláusulas é um dos lugares mais comuns para ficar preso ao aprender SQL . A principal diferença entre eles é que a cláusula GROUP BY é aplicável quando queremos usar funções agregadas para mais de um conjunto de linhas. A cláusula ORDER BY é aplicável quando queremos obter os dados obtidos por uma consulta na ordem de classificação . Antes de fazer a comparação, conheceremos primeiro essas cláusulas SQL.
Cláusula ORDER BY
A cláusula ORDER BY é usada em consultas SQL para classificar os dados retornados por uma consulta em ordem crescente ou decrescente. Se omitirmos a ordem de classificação, o resultado resumido será classificado em ordem crescente por padrão. A cláusula ORDER BY, assim como a cláusula GROUP BY, pode ser usada em conjunto com a instrução SELECT. ASC denota ordem crescente, enquanto DESC denota ordem decrescente.
A seguir está a sintaxe para usar a cláusula ORDER BY em uma instrução SQL:
arquitetura java
SELECT expressions FROM tables [WHERE conditions] ORDER BY expression [ ASC | DESC ];
Vamos entender como funciona a cláusula ORDER BY com a ajuda do exemplo a seguir. Suponha que temos uma mesa desenvolvedor que contém os seguintes dados:
Podemos perceber que esses resultados não são apresentados de forma organizada. Suponha que queiramos organizar os resultados em ordem crescente ou decrescente com base no coluna de estado . Nesse caso, precisaríamos do comando ORDER BY para obter o resultado desejado. Podemos fazer isso executando o comando da seguinte forma:
mysql> SELECT D_name, D_state, D_salary FROM developers ORDER BY D_state ASC;
Aqui está a saída onde obteremos os resultados desejados:
Cláusula GROUP BY
A cláusula GROUP BY é usada em consultas SQL para organizar dados que possuem os mesmos valores de atributos. Normalmente, usamos isso com a instrução SELECT. É sempre bom lembrar que devemos colocar a cláusula GROUP BY após a cláusula WHERE. Além disso, é acompanhado antes da cláusula ORDER BY.
Muitas vezes podemos usar esta cláusula em colaboração com funções agregadas como SUM, AVG, MIN, MAX e COUNT para produzir relatórios resumidos do banco de dados. É importante lembrar que o atributo nesta cláusula deve aparecer na cláusula SELECT e não em uma função agregada. Se fizermos isso, a consulta estará incorreta. Como resultado, a cláusula GROUP BY é sempre usada em conjunto com a cláusula SELECT. A consulta para a cláusula GROUP BY é uma consulta agrupada e retorna uma única linha para cada objeto agrupado.
cm para pés e polegadas
A seguir está a sintaxe para usar a cláusula GROUP BY em uma instrução SQL:
SELECT column_name, function(column_name) FROM table_name WHERE condition GROUP BY column_name;
Vamos entender como funciona a cláusula GROUP BY com a ajuda de um exemplo. Aqui iremos demonstrar isso com a mesma tabela.
Suponha que queiramos saber salário médio do desenvolvedor em um determinado estado e organizar os resultados em ordem decrescente com base na coluna de estado. Nesse caso, precisaríamos dos comandos GROUP BY e ORDER BY para obter o resultado desejado. Podemos fazer isso executando o comando da seguinte forma:
mysql> SELECT D_state, avg(D_salary) AS salary FROM developers GROUP BY D_state ORDER BY D_state DESC;
Esta consulta formou inicialmente um resultado intermediário que agrupou o estado. A seguir, o Média A função é executada em cada grupo de estados, então classificamos o resultado em ordem decrescente e, por fim, obteremos os resultados desejados conforme mostrado abaixo:
Principais diferenças entre GROUP BY e ORDER BY
A seguir estão as principais distinções entre as cláusulas Group By e Order By:
- A cláusula Group By é usada para agrupar dados com base no mesmo valor em uma coluna específica. A cláusula ORDER BY, por outro lado, classifica o resultado e mostra-o em ordem crescente ou decrescente.
- É obrigatório usar a função agregada para usar o Group By. Por outro lado, não é obrigatório utilizar a função agregada para utilizar o Order By.
- O atributo não pode estar na instrução GROUP BY na função agregada, enquanto o atributo pode estar na instrução ORDER BY na função agregada.
- A cláusula Group By controla a apresentação de tuplas, o que significa que o agrupamento é feito com base na semelhança entre os valores dos atributos da linha. Por outro lado, a cláusula ORDER BY controla a apresentação de colunas, o que significa que a ordenação ou classificação é feita com base nos valores dos atributos da coluna em ordem crescente ou decrescente.
- GROUP BY é sempre colocado após a cláusula WHERE, mas antes da instrução ORDER BY. Por outro lado, ORDER BY é sempre usado após a instrução GROUP BY.
Gráfico de comparação GROUP BY vs. ORDER BY
O gráfico de comparação a seguir explica suas principais diferenças de maneira rápida:
SN | Agrupar por | ORDENAR POR |
---|---|---|
1. | É usado para agrupar as linhas que possuem os mesmos valores. | Ele classifica o conjunto de resultados em ordem crescente ou decrescente. |
2. | Pode ser permitido na instrução CREATE VIEW. | Não é permitido na instrução CREATE VIEW |
3. | Ele controla a apresentação de linhas. | Ele controla a apresentação das colunas. |
4. | O atributo não pode estar na função agregada na instrução GROUP BY. | O atributo pode estar na função agregada na instrução ORDER BY. |
5. | É sempre usado antes da cláusula ORDER BY na instrução SELECT. | É sempre usado após a cláusula GROUP BY na instrução SELECT. |
6. | É obrigatório o uso de funções agregadas no GROUP BY. | Não é obrigatório usar funções agregadas no ORDER BY. |
7. | Aqui, o agrupamento é feito com base na semelhança entre os valores dos atributos da linha. | Aqui, o conjunto de resultados é classificado com base nos valores dos atributos da coluna, em ordem crescente ou decrescente. |
Conclusão
As cláusulas GROUP BY e ORDER BY são comparadas neste artigo. Ambas as cláusulas são recursos de banco de dados SQL extremamente úteis. Quando queremos formar um grupo de linhas, usamos a cláusula GROUP BY. Se quisermos organizar os dados em ordem crescente ou decrescente com base em uma coluna específica, usamos a cláusula ORDER BY. Eles não têm nenhum relacionamento porque ambos são usados para dois propósitos diferentes. No entanto, podemos combiná-los para servir a algum propósito especial ou usá-los individualmente, dependendo das circunstâncias. Podemos usar essas cláusulas somente com a instrução SELECT.
formiga vs maven