Database
 sql >> Database >  >> RDS >> Database

GRUPPO PER vs ORDINA PER

La clausola GROUP BY e la clausola ORDER BY in SQL vengono utilizzate per organizzare i dati ottenuti dalle query SQL. La differenza importante tra la clausola GROUP BY e la clausola ORDER BY è che la clausola GROUP BY viene applicata quando si desidera utilizzare una funzione di aggregazione nella query SQL su più di un insieme di righe. Al contrario, la clausola ORDER BY viene applicata quando vogliamo ricevere i dati ottenuti dalla query nell'ordine ordinato. Prima di passare ai grafici di confronto, capiremo prima queste clausole SQL.

Clausola GRUPPO PER

L'istruzione GROUP BY in SQL utilizza le query per disporre i dati all'interno dei valori degli attributi. Di solito, utilizziamo la clausola GROUP BY con l'istruzione SELECT. Dobbiamo inserire sempre la clausola GROUP BY dopo la clausola WHERE. Inoltre, viene eseguito anche prima della clausola ORDER BY.

Spesso possiamo utilizzare la clausola GROUP BY con funzioni aggregate come SUM, AVG, MIN, MAX e COUNT per produrre output dal database. La query per la clausola GROUP BY è una query raggruppata e restituisce una singola riga per ogni oggetto raggruppato.

Di seguito è riportata la sintassi per utilizzare la clausola GROUP BY in una query SQL

SELECT COLUMNNAME, FUNCTION(COLUMNNAME) FROM TABLENAME WHERE CONDITION GROUP BY COLUMNNAME;

Comprendiamo la clausola GROUP BY con l'aiuto di alcuni esempi. Considera le seguenti tabelle insieme ai record forniti.

Tabella:Dipendenti

ID DIPENDENTE FIRST_NAME COGNOME STIPENDIO CITTÀ REPARTO RIDESTORE ORE_LAVORATIVE SESSO
1001 VAIBHAVI MISHRA 65000 PUNE ORACLE 1 12 F
1002 VAIBHAV SHARMA 60000 NOIDA ORACLE 1 9 M
1003 NICHIL VANI 50000 JAIPUR FM 2 10 M
2001 PRACHI SHARMA 55500 CHANDIGARH ORACLE 1 10 F
2002 BHAVESH JAIN 65500 PUNE FM 2 12 M
2003 RUCHIKA JAIN 50000 MUMBAI PROVA 4 9 F
3001 PRANOTI SHENDE 55500 PUNE JAVA 3 9 F
3002 ANUJA DOVE 50500 JAIPUR FM 2 9 F
3003 DEEPAM JAUHARI 58500 MUMBAI JAVA 3 12 M
4001 RAJESH GOUD 60500 MUMBAI PROVA 4 10 M

Esempio 1: Supponiamo di voler sapere che i dipendenti sommano lo stipendio in una particolare città per i dati di cui sopra. Per fare ciò, eseguiremo la query seguente come segue:

SELECT CITY, SUM(SALARY) FROM EMPLOYEES GROUP BY CITY;

Questa domanda inizialmente ha formato un risultato che ha raggruppato la città. Successivamente, la SOMMA la funzione viene eseguita su ciascun gruppo di città e, infine, otterremo i risultati desiderati come mostrato di seguito:

Esempio 2: Supponiamo di voler conoscere lo stipendio massimo dei dipendenti in un particolare dipartimento per i dati di cui sopra. Per fare ciò, eseguiremo la query seguente come segue:

SELECT DEPARTMENT, MAX(SALARY) FROM EMPLOYEES GROUP BY DEPARTMENT;

Questa query inizialmente ha formato un risultato che ha raggruppato il dipartimento. Successivamente, il MAX la funzione viene eseguita su ciascun gruppo del dipartimento e, infine, otterremo i risultati desiderati come mostrato di seguito:

Clausola ORDINA PER

La clausola GROUP BY e la clausola ORDER BY possono essere utilizzate con l'istruzione SELECT. Nelle query SQL, abbiamo utilizzato la clausola ORDER BY per ordinare i record restituiti dalla query in ordine crescente o decrescente. Se non avessimo menzionato l'ordine di ordinamento, l'intero risultato sarebbe stato ordinato per impostazione predefinita in ordine crescente.

Di seguito è riportata la sintassi per utilizzare la clausola ORDER BY in una query SQL

SELECT * FROM TABLENAME ORDER BY [ASC | DESC];

Cerchiamo di capire la clausola ORDER BY con l'aiuto di alcuni esempi. Considera le seguenti tabelle insieme ai record forniti.

Tabella:Dipendenti

ID DIPENDENTE FIRST_NAME COGNOME STIPENDIO CITTÀ REPARTO RIDESTORE ORE_LAVORATIVE SESSO
1001 VAIBHAVI MISHRA 65000 PUNE ORACLE 1 12 F
1002 VAIBHAV SHARMA 60000 NOIDA ORACLE 1 9 M
1003 NICHIL VANI 50000 JAIPUR FM 2 10 M
2001 PRACHI SHARMA 55500 CHANDIGARH ORACLE 1 10 F
2002 BHAVESH JAIN 65500 PUNE FM 2 12 M
2003 RUCHIKA JAIN 50000 MUMBAI PROVA 4 9 F
3001 PRANOTI SHENDE 55500 PUNE JAVA 3 9 F
3002 ANUJA DOVE 50500 JAIPUR FM 2 9 F
3003 DEEPAM JAUHARI 58500 MUMBAI JAVA 3 12 M
4001 RAJESH GOUD 60500 MUMBAI PROVA 4 10 M

Esempio 1: Supponiamo di voler disporre il risultato in ordine, crescente o decrescente, in base alla colonna del nome. In tal caso, vorremmo utilizzare la clausola ORDER BY per ottenere il risultato. Per fare ciò, eseguiremo la query seguente come segue:

SELECT * FROM EMPLOYEES ORDER BY FIRST_NAME ASC;

Differenza chiave tra GROUP BY e ORDER BY

Di seguito sono riportati i punti che differenziano tra le clausole GROUP BY e ORDER BY:

  • L'istruzione GROUP BY in SQL viene utilizzata per raggruppare i record in base a un valore simile in una determinata colonna. D'altra parte, la clausola ORDER BY in SQL viene utilizzata per ordinare i risultati di visualizzazione in ordine crescente o decrescente.
  • Durante l'esecuzione di una query utilizzando la clausola GROUP BY nella query SQL, è obbligatorio utilizzare la funzione di aggregazione. D'altra parte, mentre si utilizza la clausola ORDER BY in SQ, non è obbligatorio utilizzare una funzione aggregata.
  • La clausola GROUP BY viene sempre inserita nella query SQL dopo la clausola WHERE ma prima della clausola ORDER BY. La clausola ORDER BY è invece sempre inserita dopo la clausola GROUP BY.

Grafico di confronto

SR.NO GRUPPO PER ORDINA PER
1 La clausola GROUP BY viene utilizzata per raggruppare le righe con valori simili. La clausola ORDER BY viene utilizzata per ordinare il risultato in ordine decrescente o crescente
2 Controlla la presentazione delle righe Controlla la presentazione delle colonne
3 LA clausola GROUP BY è sempre posta prima della clausola ORDER BY. La clausola ORDER BY viene sempre inserita dopo la clausola GROUP BY.
4 È obbligatorio utilizzare una funzione aggregata Non obbligatorio utilizzare una funzione aggregata
5 L'attributo non può essere nella funzione di aggregazione nell'istruzione GROUP BY. L'attributo può trovarsi sotto la funzione di aggregazione nell'istruzione ORDER BY.