ejemplos desc asc sql mysql database

desc - order by sql server ejemplos



¿cuál es la diferencia entre GROUP BY y ORDER BY en sql (11)

  1. GROUP BY agregará registros por la columna especificada, lo que le permite realizar funciones de agregación en columnas no agrupadas (como SUM, COUNT, AVG, etc.). ORDER BY altera el orden en que se devuelven los artículos.
  2. Si SELECCIONA IsActive, COUNT (*) DE Clientes GROUP BY IsActive obtiene un recuento de clientes activos e inactivos. El grupo agrega los resultados según el campo que especificó. Si selecciona SELECT * FROM Customers ORDER BY Name, obtendrá la lista de resultados ordenada por el nombre del cliente.
  3. Si agrupa, los resultados no están necesariamente ordenados; aunque en muchos casos pueden aparecer en un orden intuitivo, eso no está garantizado por la cláusula GROUP. Si desea que sus grupos estén ordenados, siempre use un ORDEN explícito POR después de GROUP BY.
  4. Los datos agrupados no se pueden filtrar por la cláusula WHERE. Los datos de pedido se pueden filtrar por la cláusula WHERE.

¿Cuándo usas cuál en general? ¡Los ejemplos son muy alentadores!

Me refiero a MySql, pero no puedo imaginar que el concepto sea diferente en otro DBMS


Algunos buenos ejemplos allí. Simplemente me gustaría agregar el mío de webcheatsheet, que proporciona buenos ejemplos claros, además de permitirle ejecutar su propio SQL.

Orden de SQL por

Grupo SQL por


Cabe señalar que GROUP BY no siempre es necesario ya que (al menos en PostgreSQL, y probablemente en otras variantes de SQL) puede usar ORDER BY con una lista y aún puede usar ASC o DESC por columna ...

SELECT name_first, name_last, dob FROM those_guys ORDER BY name_last ASC, name_first ASC, dob DESC;


GROUP BY se utiliza para agrupar filas en una selección, generalmente cuando se agregan filas (por ejemplo, cálculo de totales, promedios, etc. para un conjunto de filas con los mismos valores para algunos campos).

ORDER BY se utiliza para ordenar las filas resultantes de una declaración de selección.


La diferencia es exactamente lo que su nombre implica: un grupo realiza una operación de agrupación y ordena por orden.

Si selecciona SELECT * FROM Customers ORDER BY Name , obtendrá la lista de resultados ordenada por el nombre del cliente.

Si SELECT IsActive, COUNT(*) FROM Customers GROUP BY IsActive obtiene un recuento de clientes activos e inactivos. El grupo agrega los resultados según el campo que especificó.


ORDER BY altera el orden en que se devuelven los artículos.

GROUP BY agregará registros por las columnas especificadas, lo que le permite realizar funciones de agregación en columnas no agrupadas (como SUM, COUNT, AVG, etc.).


ORDER BY altera el orden en que se devuelven los artículos.

GROUP BY agregará registros por las columnas especificadas, lo que le permite realizar funciones de agregación en columnas no agrupadas (como SUM, COUNT, AVG, etc.).

TABLE: ID NAME 1 Peter 2 John 3 Greg 4 Peter SELECT * FROM TABLE ORDER BY NAME = 3 Greg 2 John 1 Peter 4 Peter SELECT Count(ID), NAME FROM TABLE GROUP BY NAME = 1 Greg 1 John 2 Peter SELECT NAME FROM TABLE GROUP BY NAME HAVING Count(ID) > 1 = Peter


Simple, ORDER BY ordena los datos y grupos GROUP BY , o combina los datos.

ORDER BY ordena el conjunto de resultados según el campo mencionado, por defecto en orden ascendente.

Supongamos que está ORDER BY (student_roll_number) una consulta como ORDER BY (student_roll_number) , le mostrará el resultado en orden ascendente de los números de lista del alumno. Aquí, la entrada student_roll_number puede ocurrir más de una vez.

En el caso GROUP BY , usamos esto con funciones agregadas, y agrupa los datos según la función agregada, y obtenemos el resultado. Aquí, si nuestra consulta tiene SUM (marks) junto con GROUP BY (student_first_name) mostrará la suma de las notas de los estudiantes que pertenecen a cada grupo (donde todos los miembros de un grupo tendrán el mismo nombre).


Tienen un significado totalmente diferente y en realidad no están relacionados en absoluto.

ORDER BY le permite ordenar el conjunto de resultados según diferentes criterios, como primero ordenar por nombre de az, luego ordenar por el precio más alto al más bajo.

(ORDEN POR nombre, precio DESC)

GROUP BY le permite tomar su conjunto de resultados, agruparlo en grupos lógicos y luego ejecutar consultas agregadas en esos grupos. Por ejemplo, puede seleccionar a todos los empleados, agruparlos según la ubicación de su lugar de trabajo y calcular el salario promedio de todos los empleados de cada lugar de trabajo.


ORDER BY muestra un campo en orden ascendente o descendente. Mientras GROUP BY muestra los mismos nombres de campo, id, etc. en una sola salida.


ORDER BY: ordena los datos en orden ascendente o descendente.

Considere la tabla CLIENTES :

+----+----------+-----+-----------+----------+ | ID | NAME | AGE | ADDRESS | SALARY | +----+----------+-----+-----------+----------+ | 1 | Ramesh | 32 | Ahmedabad | 2000.00 | | 2 | Khilan | 25 | Delhi | 1500.00 | | 3 | kaushik | 23 | Kota | 2000.00 | | 4 | Chaitali | 25 | Mumbai | 6500.00 | | 5 | Hardik | 27 | Bhopal | 8500.00 | | 6 | Komal | 22 | MP | 4500.00 | | 7 | Muffy | 24 | Indore | 10000.00 | +----+----------+-----+-----------+----------+

A continuación se muestra un ejemplo, que ordenaría el resultado en orden ascendente por NAME:

SQL> SELECT * FROM CUSTOMERS ORDER BY NAME;

Esto produciría el siguiente resultado:

+----+----------+-----+-----------+----------+ | ID | NAME | AGE | ADDRESS | SALARY | +----+----------+-----+-----------+----------+ | 4 | Chaitali | 25 | Mumbai | 6500.00 | | 5 | Hardik | 27 | Bhopal | 8500.00 | | 3 | kaushik | 23 | Kota | 2000.00 | | 2 | Khilan | 25 | Delhi | 1500.00 | | 6 | Komal | 22 | MP | 4500.00 | | 7 | Muffy | 24 | Indore | 10000.00 | | 1 | Ramesh | 32 | Ahmedabad | 2000.00 | +----+----------+-----+-----------+----------+

GROUP BY: organiza datos idénticos en grupos.

Ahora, la tabla CLIENTES tiene los siguientes registros con nombres duplicados:

+----+----------+-----+-----------+----------+ | ID | NAME | AGE | ADDRESS | SALARY | +----+----------+-----+-----------+----------+ | 1 | Ramesh | 32 | Ahmedabad | 2000.00 | | 2 | Ramesh | 25 | Delhi | 1500.00 | | 3 | kaushik | 23 | Kota | 2000.00 | | 4 | kaushik | 25 | Mumbai | 6500.00 | | 5 | Hardik | 27 | Bhopal | 8500.00 | | 6 | Komal | 22 | MP | 4500.00 | | 7 | Muffy | 24 | Indore | 10000.00 | +----+----------+-----+-----------+----------+

si desea agrupar nombres idénticos en un solo nombre, la consulta GROUP BY sería la siguiente:

SQL> SELECT * FROM CUSTOMERS GROUP BY NAME;

Esto produciría el siguiente resultado: (para nombres idénticos, elegiría el último y finalmente ordenaría la columna en orden ascendente)

+----+----------+-----+-----------+----------+ | ID | NAME | AGE | ADDRESS | SALARY | +----+----------+-----+-----------+----------+ | 5 | Hardik | 27 | Bhopal | 8500.00 | | 4 | kaushik | 25 | Mumbai | 6500.00 | | 6 | Komal | 22 | MP | 4500.00 | | 7 | Muffy | 24 | Indore | 10000.00 | | 2 | Ramesh | 25 | Delhi | 1500.00 | +----+----------+-----+-----------+----------+

como usted ha inferido que no sirve de nada sin las funciones de SQL como sum, avg, etc.

por lo tanto, repase esta definición para comprender el uso apropiado de GROUP BY:

Una cláusula GROUP BY funciona en las filas devueltas por una consulta al resumir filas idénticas en un grupo único / distinto y devuelve una sola fila con el resumen para cada grupo, mediante el uso de la función Aggregate apropiada en la lista SELECT, como COUNT (), SUM (), MIN (), MAX (), AVG (), etc.

Ahora, si desea saber la cantidad total de salario de cada cliente (nombre), la consulta GROUP BY sería la siguiente:

SQL> SELECT NAME, SUM(SALARY) FROM CUSTOMERS GROUP BY NAME;

Esto produciría el siguiente resultado: (suma de los salarios de nombres idénticos y clasificación de la columna NAME después de eliminar nombres idénticos)

+---------+-------------+ | NAME | SUM(SALARY) | +---------+-------------+ | Hardik | 8500.00 | | kaushik | 8500.00 | | Komal | 4500.00 | | Muffy | 10000.00 | | Ramesh | 3500.00 | +---------+-------------+