logo

GROUP BY vs. ORDER BY

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.

GROUP BY vs. ORDER BY

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:

GROUP BY vs. ORDER BY

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:

GROUP BY vs. ORDER BY

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:

GROUP BY vs. ORDER BY

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