Raccomandato, 2024

Scelta Del Redattore

Differenza tra Group By e Order By in SQL

SQL consente di organizzare i dati ottenuti dalla query. Abbiamo due clausole per organizzare i dati ottenuti dalla query che sono Group By e Order By clausola. Il punto che distingue la clausola Group By e Order By è che la clausola Group By viene utilizzata quando si desidera applicare la funzione di aggregazione a più di una serie di tuple e la clausola Order By viene utilizzata quando si desidera ordinare i dati ottenuti dalla query. Cerchiamo di discutere alcune differenze tra la clausola Group By e la clausola Order By con l'aiuto della tabella di comparazione mostrata sotto.

Grafico comparativo

Base per il confrontoRaggruppa perOrdinato da
Di baseRaggruppa per è usato per formare il gruppo dell'insieme delle tuple.Order By viene utilizzato per organizzare i dati ottenuti come risultato di una query in forma ordinata.
AttributoL'attributo nella funzione Aggrega non può essere nella clausola Group By.L'attributo sotto aggregato può essere in Order By Clause.
TerraFatto sulla base della somiglianza tra i valori degli attributi.Fatto per ordine ascendente e ordine decrescente.

Definizione di Group By Clause

Aggregate funzioni come avg, min, max, sum, count vengono applicate al singolo set di tuple. Nel caso in cui, se si desidera applicare le funzioni di aggregazione al gruppo dell'insieme di tuple, è prevista la clausola Group by. Raggruppa per clausola raggruppa le tuple che hanno lo stesso valore di attributo.

C'è una cosa da ricordare sulla clausola Group By, assicurarsi che l' attributo sotto la clausola Group By debba apparire nella clausola SELECT ma non sotto una funzione di aggregazione . Se la clausola Group By contiene un attributo che non è sotto la clausola SELECT o se è sotto la clausola SELECT ma sotto la funzione di aggregazione, la query diventa errata. Quindi, possiamo dire che la clausola Group By viene sempre utilizzata in collaborazione con la clausola SELECT.

Facciamo un esempio per capire la clausola Group By.

SELECT Dipartimento _ID, avg (Salary) come avg_salary di Teacher Group By Department_ID.

Puoi vedere che inizialmente si forma un risultato intermedio che ha raggruppato i reparti.

Successivamente, la funzione aggregata avg viene applicata a ciascun gruppo di reparti e il risultato è mostrato di seguito.

Definizione dell'ordine per clausola

La clausola Order By viene utilizzata per visualizzare i dati ottenuti da una query nell'ordine ordinato. Come per la clausola Group By, anche la clausola Order By viene utilizzata in collaborazione con la clausola SELECT. Se non si menziona l'ordinamento, la clausola Order By ordina i dati in ordine crescente. È possibile specificare l'ordine crescente come asc e l'ordine decrescente come desc .

Cerchiamo di capire il funzionamento della clausola Order By con l'aiuto del seguente esempio. Abbiamo una tabella Insegnante e applicherò l'ordinamento a due colonne Department_Id e Salary, della tabella Teacher.

Seleziona Department_ID, Salary From Teacher Order di Department_Id asc, Salary desc.

Puoi vedere che prima, ordina lo _ID del Dipartimento in ordine crescente e poi ordina gli stipendi nello stesso dipartimento in ordine decrescente.

Differenze chiave tra gruppo e ordine di

  1. La clausola Group By raggruppa l'insieme di tuple in una relazione che si trova sotto la clausola SELECT. D'altra parte, la clausola Order By ordina il risultato della query in ordine ascendente o discendente.
  2. L'attributo sotto la funzione di aggregazione non può essere sotto la clausola Group By, mentre l'attributo sotto la funzione di aggregazione può essere presente nella clausola Order By.
  3. Il raggruppamento delle tuple viene effettuato sulla base della similarità tra i valori degli attributi delle tuple. D'altra parte, l'ordinamento o l'ordinamento viene effettuato in base all'ordine crescente o decrescente.

Conclusione:

Se si desidera formare il gruppo dell'insieme di tuple, è necessario utilizzare la clausola Group By. Nel caso in cui si desideri disporre i dati di una singola colonna o di più di una colonna nell'insieme di tuple in ordine ascendente o discendente, è necessario utilizzare la clausola Order By.

Top