CodeGym /Cours /SQL SELF /Exemples de formatage et de tri des données dans des cas ...

Exemples de formatage et de tri des données dans des cas réels

SQL SELF
Niveau 6 , Leçon 3
Disponible

Le tri et le formatage des données, c’est des skills super importants pour préparer des rapports lisibles, optimiser l’analyse de données et rendre l’expérience utilisateur plus cool. Tu vas t’en servir pour faire des rapports d’analyse, préparer des exports, et aussi dans le taf quotidien avec les bases de données. En vrai, tu vas souvent tomber sur des situations où il faut bien présenter les données, virer les doublons et trier les infos pour que ce soit plus clair. C’est exactement ce qu’on va faire aujourd’hui !

Exemple 1 : Créer une liste de clients uniques avec nom et prénom fusionnés, triée par nom de famille

On a une table customers où sont stockées les infos des clients :

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

Notre objectif :

  1. Fusionner first_name et last_name dans une seule colonne full_name.
  2. Extraire seulement les clients uniques.
  3. Trier la liste par nom de famille (last_name).

Requête 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

Fais gaffe, les doublons Alex Lin ont été supprimés grâce à DISTINCT, et la liste complète est triée par nom de famille dans l’ordre alphabétique.

Exemple 2 : Formatage des données de commandes et tri

Dans la table orders, on a les infos sur les commandes :

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

Notre objectif :

  1. Créer une colonne formatted_order_date où la date de commande sera au format JJ-MM-AAAA.
  2. Supprimer les doublons de client et de date (garder les combinaisons uniques customer_name et order_date).
  3. Trier les commandes par date décroissante.
  4. Requête 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;

Résultat :

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

Regarde comment avec la fonction TO_CHAR() on a transformé la date au format DD-MM-YYYY, et grâce à DISTINCT on a viré les doublons.

Exemple 3 : Extraire les combinaisons uniques "prénom + nom" des étudiants et trier par nom de famille et date de naissance

Dans la table students, on a les infos sur les étudiants :

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

Notre objectif :

  • Fusionner prénom et nom dans une seule colonne full_name.
  • Extraire les combinaisons uniques "prénom + nom".
  • Trier les étudiants par nom de famille, puis par date de naissance.
SELECT DISTINCT
    CONCAT(first_name, ' ', last_name) AS full_name,
    birth_date
FROM students
ORDER BY last_name, birth_date;

Résultat :

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

À noter : les deux lignes identiques pour l’étudiant "Alex Lin" ont été fusionnées en une seule, et le tri se fait d’abord par nom de famille, puis par date de naissance.

Exercice pratique

Utilise ce que tu as appris aujourd’hui pour résoudre ce petit défi :

Exercice : Tu as une table products qui contient les données suivantes :

product_id category product_name price
1 Électronique Téléphone 50000
2 Vêtements Veste 8000
3 Électronique Ordinateur portable 70000
4 Vêtements Veste 8000
  1. Crée une colonne formatted_productproduct_name est fusionné avec la catégorie par un tiret, par exemple : Téléphone - Électronique.
  2. Supprime les doublons de combinaison product_name et category.
  3. Trie les produits par catégorie, puis par prix (du moins cher au plus cher).

Voici la structure de la requête pour faire l’exercice :

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

Essaie d’imaginer tout seul le résultat de cette requête !

L’utilisation des fonctions CONCAT(), DISTINCT et ORDER BY te permet d’avoir des données super lisibles et bien structurées, ce qui est ultra important dans les vrais projets et les tâches du quotidien. Assure-toi de bien piger comment les combiner en t’entraînant sur des exemples !

2
Mission
SQL SELF, niveau 6, leçon 3
Bloqué
Formatage et tri de la liste des étudiants
Formatage et tri de la liste des étudiants
2
Mission
SQL SELF, niveau 6, leçon 3
Bloqué
Commandes uniques avec formatage des clients
Commandes uniques avec formatage des clients
Commentaires
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION