Differenza tra Raggruppa per e Ordina per in SQL

Autore: Laura McKinney
Data Della Creazione: 1 Aprile 2021
Data Di Aggiornamento: 12 Maggio 2024
Anonim
SQL "difference between" interview questions (part 1)
Video: SQL "difference between" interview questions (part 1)

Contenuto


SQL consente di organizzare i dati ottenuti dalla query. Abbiamo due clausole per l'organizzazione dei dati ottenuti dalla query che sono clausole Group By e Order By. Il punto che distingue la clausola Group By e Order By è quello Raggruppare per la clausola viene utilizzata quando vogliamo applicare la funzione aggregata a più di un set di tuple e Ordinato da la clausola viene utilizzata quando vogliamo ordinare i dati ottenuti dalla query. Discutiamo alcune differenze tra la clausola Raggruppa per e la clausola Ordina per con l'aiuto della tabella di confronto mostrata di seguito.

  1. Tabella di comparazione
  2. Definizione
  3. Differenze chiave
  4. Conclusione

Tabella di comparazione

Base per il confrontoRaggruppare perOrdinato da
Di baseRaggruppa per viene utilizzato per formare il gruppo dell'insieme delle tuple.Ordina per viene utilizzato per disporre i dati ottenuti a seguito di una query in forma Ordinata.
Attributo L'attributo nella funzione aggregata non può essere nella clausola Raggruppa per.L'attributo sotto aggregato può essere in Ordina per clausola.
TerraFatto sulla base della somiglianza tra i valori degli attributi.Fatto per ordine crescente e decrescente.

Definizione di gruppo per clausola

Le funzioni aggregate 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, è necessario disporre della clausola Raggruppa per. Raggruppa per clausola raggruppa le tuple con lo stesso valore di attributo.


C'è una cosa da fare ricorda sulla clausola Group By, assicurati che il attributo sotto il Raggruppare per la clausola deve apparire nella SELEZIONARE clausola ma non sotto un funzione aggregata. Se la clausola Raggruppa per contiene un attributo che non si trova nella clausola SELECT o se si trova nella clausola SELECT ma nella funzione aggregata, la query diventa errata. Pertanto, possiamo dire che la clausola Group By viene sempre utilizzata in collaborazione con la clausola SELECT.

Facciamo un esempio per comprendere la clausola Raggruppa per.

SELEZIONA Department _ID, avg (Stipendio) come avg_salary dal gruppo di insegnanti Per Department_ID.


Si può vedere che inizialmente si forma un risultato intermedio che ha raggruppato i dipartimenti.

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

Definizione di ordine per clausola

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

Comprendiamo il funzionamento della clausola Order By con l'aiuto del seguente esempio. Abbiamo una tabella Insegnante e applicherò l'ordinamento a due colonne Dipartimento_Id e Stipendio, della tabella Insegnante.

Seleziona Department_ID, Stipendio Da Insegnante Ordina per Department_Id asc, Stipendio desc.

Puoi vederlo prima, organizza il Dipartimento _ID in ordine crescente e poi organizza gli stipendi nello stesso dipartimento in ordine decrescente.

  1. La clausola Raggruppa per raggruppa l'insieme di tuple in una relazione che si trova sotto la clausola SELECT. D'altra parte, la clausola Order By ordina i risultati della query in ordine crescente o decrescente.
  2. L'attributo nella funzione aggregata non può essere incluso nella clausola Raggruppa mentre, l'attributo nella funzione aggregata può essere presente nella clausola Ordina per.
  3. Il raggruppamento di tuple viene eseguito sulla base della somiglianza tra i valori degli attributi delle tuple. D'altra parte, l'ordinamento o l'ordinamento viene eseguito in base all'ordine crescente o all'ordine decrescente.

Conclusione:

Se si desidera formare il gruppo dell'insieme di tuple, è necessario utilizzare la clausola Raggruppa per. Nel caso in cui si desideri disporre i dati di una singola colonna o, più di una colonna nell'insieme di tuple in ordine crescente o decrescente, è necessario utilizzare la clausola Ordina per.