CodeGym /Corsi /SQL SELF /Esempi di formattazione e ordinamento dei dati in casi re...

Esempi di formattazione e ordinamento dei dati in casi reali

SQL SELF
Livello 6 , Lezione 3
Disponibile

Ordinare e formattare i dati sono skill fondamentali che ti permettono di preparare report leggibili, ottimizzare l’analisi dei dati e migliorare l’esperienza utente. Queste conoscenze ti serviranno quando crei report analitici, prepari dati per l’export e anche nel lavoro quotidiano con i database. Nella pratica ti capiterà spesso di dover formattare bene i dati, togliere i duplicati e ordinare le info per renderle più chiare. Proprio di questo ci occupiamo oggi!

Esempio 1: Creare una lista di clienti unici unendo nome e cognome, ordinata per cognome

Abbiamo una tabella customers dove sono salvati i dati dei clienti:

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

Il nostro obiettivo:

  1. Unire first_name e last_name in una sola colonna full_name.
  2. Estrarre solo i clienti unici.
  3. Ordinare la lista per cognome (last_name).

Query 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

Nota che i record duplicati Alex Lin sono stati eliminati grazie a DISTINCT, e la lista completa è stata ordinata per cognome in ordine alfabetico.

Esempio 2: Formattare i dati degli ordini e ordinarli

Nella tabella orders ci sono i dati degli ordini:

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

Il nostro obiettivo:

  1. Creare una colonna formatted_order_date dove la data dell’ordine sia nel formato DD-MM-YYYY.
  2. Eliminare i record duplicati di cliente e data (tenere solo le combinazioni uniche di customer_name e order_date).
  3. Ordinare gli ordini per data in ordine decrescente.
  4. Query 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;

Risultato:

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

Guarda come con la funzione TO_CHAR() abbiamo cambiato il formato della data in DD-MM-YYYY, e grazie a DISTINCT abbiamo tolto i duplicati.

Esempio 3: Estrarre combinazioni uniche "nome + cognome" degli studenti e ordinare per cognome e data di nascita

Nella tabella students ci sono i dati degli studenti:

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

Il nostro obiettivo:

  • Unire nome e cognome in una colonna full_name.
  • Estrarre combinazioni uniche "nome + cognome".
  • Ordinare gli studenti per cognome e poi per data di nascita.
SELECT DISTINCT
    CONCAT(first_name, ' ', last_name) AS full_name,
    birth_date
FROM students
ORDER BY last_name, birth_date;

Risultato:

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

Attenzione: due record uguali dello studente "Alex Lin" sono stati uniti in una sola riga, e l’ordinamento è stato fatto prima per cognome, poi per data di nascita.

Esercizio pratico

Applica quello che hai imparato oggi per risolvere questo esercizio:

Compito: Hai una tabella products che contiene questi dati:

product_id category product_name price
1 Elettronika Telefon 50000
2 Odezhda Kurtka 8000
3 Elettronika Noutbuk 70000
4 Odezhda Kurtka 8000
  1. Crea una colonna formatted_product dove product_name è unito alla categoria con un trattino, tipo: Telefon - Elettronika.
  2. Elimina le combinazioni duplicate di product_name e category.
  3. Ordina i prodotti per categoria e poi per prezzo (dal più economico al più caro).

Qui sotto trovi la struttura della query per risolvere l’esercizio:

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

Prova a immaginare da solo il risultato di questa query!

Usare le funzioni CONCAT(), DISTINCT e ORDER BY ti permette di ottenere dati super leggibili e ben strutturati, cosa fondamentale nei progetti e nei task reali. Assicurati di capire bene come combinarle, facendo pratica con gli esempi!

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