CodeGym /Cursos /SQL SELF /Ejemplos de formateo y ordenación de datos en tareas real...

Ejemplos de formateo y ordenación de datos en tareas reales

SQL SELF
Nivel 6 , Lección 3
Disponible

Ordenar y formatear datos son skills súper importantes que te ayudan a preparar informes legibles, optimizar el análisis de datos y mejorar la experiencia de usuario. Estos conocimientos te van a servir cuando crees informes analíticos, prepares datos para exportar y, en general, en el día a día con bases de datos. En la práctica, te vas a encontrar muchas veces con tareas donde tienes que dejar los datos bonitos, eliminar registros duplicados y ordenar la info para que sea más fácil de entender. ¡Justo eso vamos a hacer hoy!

Ejemplo 1: Crear una lista de clientes únicos uniendo nombre y apellido, ordenada por apellido

Tenemos una tabla customers donde se guardan los datos de los clientes:

id first_name last_name city
1 Alex Lin New York
2 Maria Chi Los Angeles
3 Alex Lin New York
4 Anna Song Chicago

Nuestro objetivo:

  1. Unir first_name y last_name en una sola columna full_name.
  2. Sacar solo los clientes únicos.
  3. Ordenar la lista por apellido (last_name).

Consulta SQL

SELECT DISTINCT
    CONCAT(first_name, ' ', last_name) AS full_name,
    city
FROM customers
ORDER BY last_name;
full_name city
Maria Chi Los Angeles
Alex Lin New York
Anna Song Chicago

Fíjate que los registros duplicados de Alex Lin se eliminaron gracias a DISTINCT, y la lista completa está ordenada por apellido en orden alfabético.

Ejemplo 2: Formatear datos de pedidos y ordenarlos

En la tabla orders se guardan los datos de los pedidos:

order_id customer_name order_date total_amount
1 Alex Lin 2023-10-01 1500
2 Maria Chi 2023-10-02 2000
3 Alex Lin 2023-10-03 1500
4 Anna Song 2023-10-04 3000

Nuestro objetivo:

  1. Crear una columna formatted_order_date donde la fecha del pedido esté en formato DD-MM-YYYY.
  2. Eliminar registros duplicados de cliente y fecha (dejar solo combinaciones únicas de customer_name y order_date).
  3. Ordenar los pedidos por fecha en orden descendente.
  4. Consulta SQL
SELECT DISTINCT
customer_name,
TO_CHAR(order_date, 'DD-MM-YYYY') AS formatted_order_date,
total_amount
FROM orders
ORDER BY order_date DESC;

Resultado:

customer_name formatted_order_date total_amount
Anna Song 04-10-2023 3000
Alex Lin 03-10-2023 1500
Maria Chi 02-10-2023 2000

Fíjate cómo con la función TO_CHAR() cambiamos el formato de la fecha a DD-MM-YYYY, y con DISTINCT quitamos los registros duplicados.

Ejemplo 3: Sacar combinaciones únicas "nombre + apellido" de estudiantes y ordenar por apellido y fecha de nacimiento

En la tabla students están los datos de los estudiantes:

student_id first_name last_name birth_date
1 Alex Lin 2001-03-15
2 Maria Chi 2000-06-20
3 Alex Lin 2001-03-15
4 Anna Song 1999-10-10

Nuestro objetivo:

  • Unir nombre y apellido en una sola columna full_name.
  • Sacar combinaciones únicas "nombre + apellido".
  • Ordenar los estudiantes por apellido y luego por fecha de nacimiento.
SELECT DISTINCT
    CONCAT(first_name, ' ', last_name) AS full_name,
    birth_date
FROM students
ORDER BY last_name, birth_date;

Resultado:

full_name birth_date
Maria Chi 2000-06-20
Alex Lin 2001-03-15
Anna Song 1999-10-10

Ojo: los dos registros iguales del estudiante "Alex Lin" se juntaron en una sola fila, y el orden es primero por apellido y luego por fecha de nacimiento.

Ejercicio práctico

Usa lo que aprendiste hoy para resolver la siguiente tarea:

Tarea: Tienes una tabla products que contiene estos datos:

product_id category product_name price
1 Electronika Telefon 50000
2 Odezhda Kurtka 8000
3 Electronika Noutbuk 70000
4 Odezhda Kurtka 8000
  1. Crea una columna formatted_product donde product_name esté unido con la categoría por un guion, por ejemplo: Telefon - Electronika.
  2. Elimina combinaciones duplicadas de product_name y category.
  3. Ordena los productos por categoría y luego por precio (de más barato a más caro).

Abajo tienes la estructura de la consulta para hacer el ejercicio:

SELECT DISTINCT
    CONCAT(product_name, ' - ', category) AS formatted_product,
    price
FROM products
ORDER BY category, price ASC;

¡Intenta imaginar tú mismo el resultado de esta consulta!

Usar funciones como CONCAT(), DISTINCT y ORDER BY te ayuda a conseguir datos súper legibles y estructurados, algo clave en proyectos y tareas reales. ¡Asegúrate de entender cómo combinarlas practicando con ejemplos!

Comentarios
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION