<aside> 💡 La cláusula ORDER BY es una herramienta útil para ordenar datos en SQL. Puedes recuperar y analizar datos de varias formas al combinarla con la declaración SELECT y otras características y funciones de SQL.

</aside>

Digamos que tienes una gran colección de artículos, por ejemplo, de cómics, y estás tratando de encontrar un número específico, puede ser una pesadilla si están todos mezclados, ¿verdad? Pero ¿qué pasa si están ordenados, por título o por fecha de lanzamiento? De repente, encontrar ese cómic se vuelve mucho más fácil. Bueno, ¡con SQL puedes hacer lo mismo con tus datos!

En el mundo de SQL, tenemos esta increíble cláusula llamada ORDER BY. Es como tener tu propio asistente de biblioteca personal, que te ayuda a ordenar tus datos exactamente como deseas.

Utilizas ORDER BY con una declaración SELECT. Entonces, si tienes una tabla llena de cómics y quieres listarlos por título, podrías decir algo como:

SELECT * FROM comic_books
ORDER BY 
	title;

La sintaxis básica de la cláusula ORDER BY es la siguiente:

SELECT 
	column1, 
	column2, ...
ORDER BY 
	column1 [ASC|DESC], 
	column2 [ASC|DESC], ...;

Aquí tienes algunos ejemplos de cómo usar la cláusula ORDER BY para ordenar datos:

Para ordenar datos en orden ascendente según una sola columna:

SELECT * FROM table
ORDER BY 
	column_name ASC;

Para ordenar datos en orden descendente según una sola columna:

SELECT * FROM table
ORDER BY 
	column_name DESC;

Para ordenar datos en orden ascendente y descendente según múltiples columnas:

SELECT * FROM table
ORDER BY 
	column_1 ASC, 
	column_2 DESC;

De forma predeterminada, la cláusula ORDER BY ordena los datos en orden ascendente, por lo que no es necesario especificar la palabra clave ASC. Para ordenar los datos en orden descendente, se debe especificar la palabra clave DESC después del nombre de la columna.

También se puede utilizar la cláusula ORDER BY con funciones de agregación, como COUNT, SUM, AVG, MIN y MAX, para ordenar los datos según el resultado de la función. Por ejemplo:

SELECT 
	column1, 
	COUNT(column2) as total
FROM table
GROUP BY 
	column1
ORDER BY 
	2 DESC

Esta declaración recupera datos de la tabla table_name, los agrupa por column1, cuenta el número de filas en cada grupo utilizando la función COUNT y ordena los resultados en orden descendente según el recuento. En SQL, se puede definir el orden de las columnas utilizando números, en este caso, el número 2 representa la segunda columna COUNT(column2) como total.

Práctica