La ordenación es una operación esencial en la gestión de bases de datos. Este tutorial le explica cómo utilizar el procedimiento SORT de SAS© para organizar sus registros, ya sea para preparar un informe o para limpiar datos antes del análisis.
La ordenación es una operación esencial en la gestión de bases de datos. Este tutorial le explica cómo utilizar el procedimiento SORT de SAS© para organizar sus registros, ya sea para preparar un informe o para limpiar datos antes del análisis.
Para que el ejercicio sea más concreto, vamos a trabajar con una base de datos de películas. Imaginemos una tabla que contiene la siguiente información:
Title (Título): El nombre de la película.
Director (Director): El nombre del director.
Studio (Estudio): La compañía de producción.
Budget_M (Presupuesto_M): El presupuesto de la película en millones de dólares.
Year (Año): El año de estreno.
Aquí está el código para generar este conjunto de datos de ejemplo:
| 1 | DATA movies; |
| 2 | INFILE DATALINES dsd; |
| 3 | INPUT Title : $20. Director : $15. Studio : $15. Budget_M Year; |
| 4 | DATALINES; |
| 5 | Inception,Nolan,Warner Bros,160,2010 |
| 6 | Tenet,Nolan,Warner Bros,200,2020 |
| 7 | Dune,Villeneuve,Warner Bros,165,2021 |
| 8 | Jaws,Spielberg,Universal,9,1975 |
| 9 | E.T.,Spielberg,Universal,10,1982 |
| 10 | Blade Runner 2049,Villeneuve,Warner Bros,150,2017 |
| 11 | Avatar,Cameron,Fox,237,2009 |
| 12 | Titanic,Cameron,Paramount,200,1997 |
| 13 | The Room,Wiseau,,6,2003 |
| 14 | .,Unknown,Indie,1,2020 |
| 15 | Metropolis,Lang,UFA,.,1927 |
| 16 | ; |
| 17 | RUN; |
Para invertir el orden (por ejemplo, ver las películas más recientes primero), se utiliza la palabra clave DESCENDING. Atención, esta palabra clave se coloca delante de la variable que modifica.
Ejemplo: Ordenar por Director (de la Z a la A) y luego por Presupuesto (del más caro al más barato).
| 1 | |
| 2 | PROC SORT |
| 3 | DATA=movies out=sorted_movies; |
| 4 | |
| 5 | BY descending Director descending Budget_M; |
| 6 | |
| 7 | RUN; |
| 8 |
Uno de los usos más potentes de la ordenación es preparar los datos para el paso DATA, para conservar solo "el mejor" o "el primero" de un grupo.
Imaginemos que queremos conservar únicamente la película más cara de cada director.
Se ordena por Director.
Se ordena por Presupuesto en orden descendente (para que el presupuesto más grande esté al principio de cada grupo).
| 1 | PROC SORT DATA=movies out=sorted_movies; |
| 2 | BY Director descending Budget_M; |
| 3 | RUN; |
| 4 | |
| 5 | DATA big_budget_only; |
| 6 | SET sorted_movies; |
| 7 | BY Director; |
| 8 | IF first.Director THEN OUTPUT; |
| 9 | RUN; |
Los desarrolladores acostumbrados a SQL (Structured Query Language) deben prestar atención a la sintaxis, ya que es inversa a la de SAS©.
En SAS© (PROC SORT): DESCENDING se coloca antes de la variable.
En SQL (ORDER BY): DESC se coloca después de la variable.
Aquí está el equivalente en SQL:
| 1 | PROC SQL; |
| 2 | SELECT * FROM movies |
| 3 | ORDER BY Director DESC, Budget_M DESC; |
| 4 | QUIT; |
La ordenación es una operación que consume memoria y tiempo de procesador. Si sus datos de películas ya provienen de un servidor SQL u Oracle, a menudo es preferible dejar que el servidor de la base de datos gestione la ordenación a través de su propia indexación en lugar de importar los datos desordenados para ordenarlos después con SAS©.

Los códigos y ejemplos proporcionados en WeAreCAS.eu son con fines educativos. Es imperativo no copiarlos y pegarlos ciegamente en sus entornos de producción. El mejor enfoque es comprender la lógica antes de aplicarla. Recomendamos encarecidamente probar estos scripts en un entorno de prueba (Sandbox/Dev). WeAreCAS no acepta ninguna responsabilidad por cualquier impacto o pérdida de datos en sus sistemas.