logo

Agrupar por versus ordenar por

Este artículo explica la descripción completa de las cláusulas GROUP BY y ORDER BY. Se utilizan principalmente para organizar datos obtenidos mediante consultas SQL. La diferencia entre estas cláusulas es uno de los lugares más comunes donde quedarse atascado al aprender SQL . La principal diferencia entre ellos es que la cláusula GROUP BY es aplicable cuando queremos usar funciones agregadas en más de un conjunto de filas. La cláusula ORDER BY es aplicable cuando queremos obtener los datos obtenidos por una consulta en el orden de clasificación. . Antes de hacer la comparación, primero conoceremos estas cláusulas SQL.

Agrupar por versus ordenar por

Cláusula ORDEN POR

La cláusula ORDER BY se utiliza en consultas SQL para ordenar los datos devueltos por una consulta en orden ascendente o descendente. Si omitimos el orden de clasificación, ordena el resultado resumido en orden ascendente de forma predeterminada. La cláusula ORDER BY, al igual que la cláusula GROUP BY, podría usarse junto con la instrucción SELECT. ASC denota orden ascendente, mientras que DESC denota orden descendente.

La siguiente es la sintaxis para utilizar la cláusula ORDER BY en una declaración SQL:

¿Qué es f5 en el teclado?
 SELECT expressions FROM tables [WHERE conditions] ORDER BY expression [ ASC | DESC ]; 

Entendamos cómo funciona la cláusula ORDER BY con la ayuda del siguiente ejemplo. Supongamos que tenemos una mesa desarrollador que contiene los siguientes datos:

Agrupar por versus ordenar por

Podemos ver que estos resultados no se muestran de forma organizada. Supongamos que queremos organizar los resultados en orden ascendente o descendente según el columna de estado . En ese caso, necesitaríamos el comando ORDER BY para obtener el resultado deseado. Podemos hacer esto ejecutando el comando de la siguiente manera:

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

Aquí está el resultado donde obtendremos los resultados deseados:

Agrupar por versus ordenar por

Cláusula GRUPO POR

La cláusula GROUP BY se utiliza en consultas SQL para organizar datos que tienen los mismos valores de atributo. Generalmente lo usamos con la declaración SELECT. Siempre hay que recordar que tenemos que colocar la cláusula GROUP BY después de la cláusula WHERE. Además, tiene un ritmo anterior a la cláusula ORDER BY.

A menudo podemos utilizar esta cláusula en colaboración con funciones agregadas como SUM, AVG, MIN, MAX y COUNT para producir informes resumidos de la base de datos. Es importante recordar que el atributo de esta cláusula debe aparecer en la cláusula SELECT, no bajo una función agregada. Si lo hacemos, la consulta sería incorrecta. Como resultado, la cláusula GROUP BY siempre se utiliza junto con la cláusula SELECT. La consulta para la cláusula GROUP BY es una consulta agrupada y devuelve una sola fila para cada objeto agrupado.

pitón filtrado

La siguiente es la sintaxis para utilizar la cláusula GROUP BY en una declaración SQL:

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

Entendamos cómo funciona la cláusula GROUP BY con la ayuda de un ejemplo. Aquí lo demostraremos con la misma tabla.

Supongamos que queremos saber salario promedio de un desarrollador en un estado en particular y organizar los resultados en orden descendente según la columna de estado. En ese caso, necesitaríamos el comando GROUP BY y ORDER BY para obtener el resultado deseado. Podemos hacer esto ejecutando el comando de la siguiente manera:

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

Esta consulta inicialmente formó un resultado intermedio que agrupó el estado. A continuación, el AVG La función se realiza en cada grupo de estados, luego ordena el resultado en orden descendente y, finalmente, obtendremos los resultados deseados como se muestra a continuación:

Agrupar por versus ordenar por

Diferencias clave entre GROUP BY y ORDER BY

Las siguientes son las distinciones clave entre la cláusula Agrupar por y Ordenar por:

  • La cláusula Agrupar por se utiliza para agrupar datos según el mismo valor en una columna específica. La cláusula ORDER BY, por otro lado, ordena el resultado y lo muestra en orden ascendente o descendente.
  • Es obligatorio utilizar la función agregada para utilizar Agrupar por. Por otro lado, no es obligatorio utilizar la función agregada para utilizar Ordenar por.
  • El atributo no puede estar en la instrucción GROUP BY en la función agregada, mientras que el atributo puede estar en la instrucción ORDER BY en la función agregada.
  • La cláusula Group By controla la presentación de tuplas, lo que significa que la agrupación se realiza en función de la similitud entre los valores de los atributos de la fila. Por el contrario, la cláusula ORDER BY controla la presentación de las columnas, lo que significa que el ordenamiento se realiza en función de los valores de los atributos de la columna, ya sea en orden ascendente o descendente.
  • GROUP BY siempre se coloca después de la cláusula WHERE pero antes de la declaración ORDER BY. Por otro lado, ORDER BY siempre se usa después de la declaración GROUP BY.

Cuadro comparativo GRUPO POR vs. ORDENAR POR

El siguiente cuadro comparativo explica sus principales diferencias de forma rápida:

SN AGRUPAR POR ORDENAR POR
1. Se utiliza para agrupar las filas que tienen los mismos valores. Ordena el conjunto de resultados en orden ascendente o descendente.
2. Puede estar permitido en la declaración CREATE VIEW. No está permitido en la declaración CREATE VIEW
3. Controla la presentación de filas. Controla la presentación de columnas.
4. El atributo no puede estar bajo la función agregada bajo la declaración GROUP BY. El atributo puede estar bajo la función agregada bajo la declaración ORDER BY.
5. Siempre se usa antes de la cláusula ORDER BY en la declaración SELECT. Siempre se usa después de la cláusula GROUP BY en la declaración SELECT.
6. Es obligatorio utilizar funciones agregadas en GROUP BY. No es obligatorio utilizar funciones agregadas en ORDER BY.
7. Aquí, la agrupación se realiza en función de la similitud entre los valores de los atributos de la fila. Aquí, el conjunto de resultados se ordena según los valores de los atributos de la columna, ya sea en orden ascendente o descendente.

Conclusión

En este artículo se comparan las cláusulas GROUP BY y ORDER BY. Ambas cláusulas son características de bases de datos SQL extremadamente útiles. Cuando queremos formar un grupo de filas utilizamos la cláusula GROUP BY. Si queremos organizar los datos en orden ascendente o descendente según una columna en particular, utilizamos la cláusula ORDER BY. No tienen ninguna relación porque ambos se utilizan con dos fines distintos. Sin embargo, podemos combinarlos para cumplir algún propósito especial o podemos usarlos individualmente según las circunstancias. Podemos usar estas cláusulas solo con la declaración SELECT.

Jasmine Davis cuando era niña