Diferença entre agrupar por e ordenar por no SQL

Autor: Laura McKinney
Data De Criação: 1 Abril 2021
Data De Atualização: 10 Poderia 2024
Anonim
Diferença entre agrupar por e ordenar por no SQL - Tecnologia
Diferença entre agrupar por e ordenar por no SQL - Tecnologia

Contente


O SQL permite organizar os dados obtidos pela consulta. Temos duas cláusulas para organizar os dados obtidos da consulta que são agrupados por e cláusula Order By. O ponto que distingue agrupar por e ordenar por cláusula é que Agrupar por A cláusula é usada quando queremos aplicar a função agregada a mais de um conjunto de tuplas e Ordenar por A cláusula é usada quando queremos classificar os dados obtidos pela consulta. Vamos discutir algumas diferenças entre a cláusula Agrupar por e a Ordem por, com a ajuda do gráfico de comparação mostrado abaixo.

  1. Gráfico de comparação
  2. Definição
  3. Principais diferenças
  4. Conclusão

Gráfico de comparação

Base para ComparaçãoAgrupar porOrdenar por
BasicAgrupar por é usado para formar o grupo do conjunto de tuplas.Order By é usado para organizar os dados obtidos como resultado de uma consulta no formulário Ordenado.
Atributo O atributo na função Agregada não pode estar na cláusula Agrupar por.O atributo agregado pode estar na cláusula Order By.
TerrenoFeito com base na semelhança entre os valores dos atributos.Feito com base em ordem crescente e decrescente.

Definição de grupo por cláusula

Funções agregadas como avg, min, max, sum, count são aplicadas ao conjunto único de tuplas. Caso você queira aplicar as funções agregadas ao grupo do conjunto de tuplas, temos a cláusula Agrupar por para isso. Agrupar por cláusula agrupa as tuplas que possuem o mesmo valor de atributo.


Há uma coisa a lembrar sobre a cláusula Group By, verifique se o atributo debaixo de Agrupar por cláusula deve aparecer no SELECT cláusula mas não sob um função agregada. Se a cláusula Agrupar por contiver um atributo que não esteja na cláusula SELECT ou se estiver na cláusula SELECT, mas na função agregada, a consulta se tornará incorreta. Portanto, podemos dizer que a cláusula Group By é sempre usada em colaboração com a cláusula SELECT.

Vamos dar um exemplo para entender a cláusula Agrupar por.

SELECIONE Departamento _ID, avg (Salário) como avg_salary do Grupo de Professores Por Departamento_ID.


Você pode ver que inicialmente é formado um resultado intermediário que agrupou os departamentos.

Em seguida, a função agregada avg é aplicada a cada grupo de departamentos e o resultado é mostrado abaixo.

Definição de ordem por cláusula

A cláusula Order By é usada para exibir os dados obtidos por uma consulta na ordem classificada. Como a cláusula Group By, a cláusula Order By também é usada em colaboração com a cláusula SELECT. Se você não mencionar a ordem de classificação, a cláusula Order By classificará os dados na ordem crescente. Você pode especificar a ordem crescente como asc e ordem decrescente como desc.

Vamos entender o funcionamento da cláusula Order By com a ajuda do exemplo a seguir. Temos uma tabela de professores e aplicarei a classificação a duas colunas Department_Id e Salary, da tabela de professores.

Selecione ID do departamento, salário da ordem do professor por Department_Id asc, salário desc.

Você pode ver que, primeiro, ele organiza o Departamento _ID em ordem crescente e, em seguida, organiza os salários no mesmo departamento em ordem decrescente.

  1. A cláusula Agrupar por agrupa o conjunto de tuplas em uma relação que está na cláusula SELECT. Por outro lado, a cláusula Order By classifica o resultado da consulta em ordem crescente ou decrescente.
  2. O atributo na função agregada não pode estar na cláusula Agrupar por, enquanto que o atributo na função agregada pode estar lá na cláusula Ordenar por.
  3. O agrupamento de tuplas é feito com base na similaridade entre os valores de atributo das tuplas. Por outro lado, a ordenação ou classificação é feita com base na ordem crescente ou decrescente.

Conclusão:

Se você deseja formar o grupo do conjunto de tuplas, use a cláusula Agrupar por. Caso você deseje organizar os dados de uma única coluna ou, mais de uma coluna no conjunto de tuplas em ordem crescente ou decrescente, a cláusula Ordem Por deve ser usada.