logo

AGRUPAR PER vs. ORDENAR PER

Aquest article explica la visió general completa de les clàusules GROUP BY i ORDER BY. S'utilitzen principalment per organitzar les dades obtingudes per consultes SQL. La diferència entre aquestes clàusules és un dels llocs més habituals per quedar-se encallat a l'hora d'aprendre SQL . La principal diferència entre ells és que la clàusula GROUP BY és aplicable quan volem utilitzar funcions agregades a més d'un conjunt de files. La clàusula ORDER BY és aplicable quan volem obtenir les dades obtingudes per una consulta en l'ordre d'ordenació . Abans de fer la comparació, primer coneixerem aquestes clàusules SQL.

AGRUPAR PER vs. ORDENAR PER

Clàusula ORDER BY

La clàusula ORDER BY s'utilitza a les consultes SQL per ordenar les dades que retorna una consulta en ordre ascendent o descendent. Si ometem l'ordre d'ordenació, ordena el resultat resumit per defecte en ordre ascendent. La clàusula ORDER BY, com la clàusula GROUP BY, es pot utilitzar juntament amb la instrucció SELECT. ASC denota ordre ascendent, mentre que DESC indica ordre descendent.

La següent és la sintaxi per utilitzar la clàusula ORDER BY en una instrucció SQL:

tall de java
 SELECT expressions FROM tables [WHERE conditions] ORDER BY expression [ ASC | DESC ]; 

Entendrem com funciona la clàusula ORDER BY amb l'ajuda de l'exemple següent. Suposem que tenim una taula desenvolupador que conté les dades següents:

AGRUPAR PER vs. ORDENAR PER

Podem veure que aquests resultats no es mostren de manera organitzada. Suposem que volem organitzar els resultats en ordre ascendent o descendent en funció de columna d'estat . En aquest cas, necessitaríem l'ordre ORDER BY per obtenir el resultat desitjat. Ho podem fer executant l'ordre de la següent manera:

 mysql> SELECT D_name, D_state, D_salary FROM developers ORDER BY D_state ASC; 

Aquí teniu la sortida on obtindrem els resultats desitjats:

AGRUPAR PER vs. ORDENAR PER

Clàusula GRUP PER

La clàusula GROUP BY s'utilitza a les consultes SQL per organitzar dades que tenen els mateixos valors d'atribut. Normalment, l'utilitzem amb la instrucció SELECT . Sempre cal recordar que hem de col·locar la clàusula GROUP BY després de la clàusula WHERE. A més, s'aplica abans de la clàusula ORDER BY.

Sovint podem utilitzar aquesta clàusula en col·laboració amb funcions agregades com SUM, AVG, MIN, MAX i COUNT per produir informes de resum a partir de la base de dades. És important recordar que l'atribut d'aquesta clàusula ha d'aparèixer a la clàusula SELECT, no sota una funció d'agregació. Si ho fem, la consulta seria incorrecta. Com a resultat, la clàusula GROUP BY s'utilitza sempre juntament amb la clàusula SELECT. La consulta per a la clàusula GROUP BY és una consulta agrupada i retorna una sola fila per a cada objecte agrupat.

llegir el fitxer excel en java

La següent és la sintaxi per utilitzar la clàusula GROUP BY en una instrucció SQL:

 SELECT column_name, function(column_name) FROM table_name WHERE condition GROUP BY column_name; 

Entendrem com funciona la clàusula GROUP BY amb l'ajuda d'un exemple. Aquí ho demostrarem amb la mateixa taula.

Suposem que volem saber-ho salari mitjà del desenvolupador en un estat determinat i organitzeu els resultats en ordre descendent en funció de la columna d'estat. En aquest cas, necessitaríem l'ordre GROUP BY i ORDER BY per obtenir el resultat desitjat. Ho podem fer executant l'ordre de la següent manera:

 mysql> SELECT D_state, avg(D_salary) AS salary FROM developers GROUP BY D_state ORDER BY D_state DESC; 

Aquesta consulta inicialment va formar un resultat intermedi que ha agrupat l'estat. A continuació, el AVG La funció es realitza a cada grup d'estats, després ordena el resultat en ordre descendent i, finalment, obtindrem els resultats desitjats tal com es mostra a continuació:

AGRUPAR PER vs. ORDENAR PER

Diferències clau entre GROUP BY i ORDER BY

Les següents són les distincions clau entre la clàusula Group By i Order By:

  • La clàusula Agrupa per s'utilitza per agrupar dades en funció del mateix valor en una columna específica. La clàusula ORDER BY, en canvi, ordena el resultat i el mostra en ordre ascendent o descendent.
  • És obligatori utilitzar la funció d'agregació per utilitzar el Grup per. D'altra banda, no és obligatori utilitzar la funció d'agregació per utilitzar la comanda per.
  • L'atribut no pot estar sota la instrucció GROUP BY sota la funció agregada, mentre que l'atribut pot estar sota la instrucció ORDER BY sota la funció agregada.
  • La clàusula Group By controla la presentació de tuples, la qual cosa significa que l'agrupació es fa en funció de la similitud entre els valors dels atributs de la fila. En canvi, la clàusula ORDER BY controla la presentació de columnes, cosa que significa que l'ordenació o l'ordenació es fa en funció dels valors dels atributs de la columna, ja sigui en ordre ascendent o descendent.
  • GROUP BY sempre es col·loca després de la clàusula WHERE però abans de la instrucció ORDER BY. D'altra banda, ORDER BY sempre s'utilitza després de la instrucció GROUP BY.

Taula comparativa GROUP BY vs. ORDER BY

El següent gràfic de comparació explica les seves principals diferències d'una manera ràpida:

SN AGRUPAR PER DEMANAT PER
1. S'utilitza per agrupar les files que tenen els mateixos valors. Ordena el conjunt de resultats en ordre ascendent o descendent.
2. Es pot permetre a la instrucció CREATE VIEW. No està permès a la instrucció CREATE VIEW
3. Controla la presentació de les files. Controla la presentació de columnes.
4. L'atribut no pot estar sota la funció agregada a la instrucció GROUP BY. L'atribut pot estar sota la funció agregada a la instrucció ORDER BY.
5. Sempre s'utilitza abans de la clàusula ORDER BY a la instrucció SELECT. Sempre s'utilitza després de la clàusula GROUP BY a la instrucció SELECT.
6. És obligatori utilitzar funcions agregades al GROUP BY. No és obligatori utilitzar funcions agregades a ORDER BY.
7. Aquí, l'agrupació es fa en funció de la similitud entre els valors dels atributs de la fila. Aquí, el conjunt de resultats s'ordena segons els valors dels atributs de la columna, ja sigui en ordre ascendent o descendent.

Conclusió

En aquest article es comparen les clàusules GROUP BY i ORDER BY. Ambdues clàusules són funcions de base de dades SQL extremadament útils. Quan volem formar un grup de files, fem servir la clàusula GROUP BY. Si volem organitzar les dades en ordre ascendent o descendent en funció d'una columna concreta, fem servir la clàusula ORDER BY. No tenen cap relació perquè tots dos s'utilitzen per a dos propòsits diferents. No obstant això, podem combinar-los per a algun propòsit especial o els podem utilitzar individualment segons les circumstàncies. Podem utilitzar aquestes clàusules només amb la instrucció SELECT.

javafx a l'eclipsi