CodeGym /Kursy /SQL SELF /Przykłady formatowania i sortowania danych w prawdziwych ...

Przykłady formatowania i sortowania danych w prawdziwych zadaniach

SQL SELF
Poziom 6, Lekcja 3
Dostępny

Sortowanie i formatowanie danych to ważne skille, które pozwalają przygotowywać czytelne raporty, optymalizować analizę danych i poprawiać interakcję z użytkownikami. Te umiejętności przydadzą ci się przy tworzeniu raportów analitycznych, przygotowywaniu danych do eksportu, a także w codziennej pracy z bazami danych. W praktyce często trafisz na zadania, gdzie trzeba ładnie sformatować dane, usunąć powtarzające się rekordy i posortować info dla wygody. Tym właśnie się dziś zajmiemy!

Przykład 1: Tworzenie listy unikalnych klientów z połączonym imieniem i nazwiskiem, posortowanej po nazwisku

Mamy tabelę customers, gdzie trzymamy dane o klientach:

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

Naszym celem jest:

  1. Połączyć first_name i last_name w jedną kolumnę full_name.
  2. Wyciągnąć tylko unikalnych klientów.
  3. Posortować listę po nazwisku (last_name).

Zapytanie 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

Zwróć uwagę, że powtarzające się rekordy Alex Lin zostały usunięte dzięki DISTINCT, a cała lista została posortowana po nazwisku alfabetycznie.

Przykład 2: Formatowanie danych o zamówieniach i ich sortowanie

W tabeli orders trzymamy dane o zamówieniach:

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

Naszym celem jest:

  1. Stworzyć kolumnę formatted_order_date, gdzie data zamówienia będzie w formacie DD-MM-YYYY.
  2. Usunąć powtarzające się rekordy klienta i daty (zostawić unikalne kombinacje customer_name i order_date).
  3. Posortować zamówienia po dacie malejąco.
  4. Zapytanie 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;

Wynik:

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

Zobacz, jak dzięki funkcji TO_CHAR() zamieniliśmy datę na format DD-MM-YYYY, a dzięki DISTINCT wywaliliśmy powtarzające się rekordy.

Przykład 3: Wyciąganie unikalnych kombinacji "imię + nazwisko" studentów i sortowanie po nazwisku i dacie urodzenia

W tabeli students są dane o studentach:

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

Naszym celem jest:

  • Połączyć imię i nazwisko w jedną kolumnę full_name.
  • Wyciągnąć unikalne kombinacje "imię + nazwisko".
  • Posortować studentów po nazwisku, a potem po dacie urodzenia.
SELECT DISTINCT
    CONCAT(first_name, ' ', last_name) AS full_name,
    birth_date
FROM students
ORDER BY last_name, birth_date;

Wynik:

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

Szczególna uwaga: dwa takie same rekordy studenta "Alex Lin" zostały połączone w jeden wiersz, a sortowanie odbyło się najpierw po nazwisku, potem po dacie urodzenia.

Zadanie praktyczne

Wykorzystaj dzisiejszą wiedzę do rozwiązania tego zadania:

Zadanie: Masz tabelę products, która zawiera takie dane:

product_id category product_name price
1 Elektronika Telefon 50000
2 Odzież Kurtka 8000
3 Elektronika Laptop 70000
4 Odzież Kurtka 8000
  1. Stwórz kolumnę formatted_product, gdzie product_name będzie połączone z kategorią przez myślnik, np.: Telefon - Elektronika.
  2. Usuń powtarzające się kombinacje product_name i category.
  3. Posortuj produkty po kategorii, a potem po cenie (od najtańszego do najdroższego).

Poniżej masz strukturę zapytania do tego zadania:

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

Spróbuj samodzielnie wyobrazić sobie wynik tego zapytania!

Używanie funkcji CONCAT(), DISTINCT i ORDER BY pozwala osiągnąć wysoką czytelność i strukturę danych, co jest mega ważne w prawdziwych projektach i zadaniach. Upewnij się, że ogarniasz, jak je łączyć, ćwicząc na przykładach!

2
Zadanie
SQL SELF, poziom 6, lekcja 3
Niedostępne
Formatowanie i sortowanie listy studentów
Formatowanie i sortowanie listy studentów
2
Zadanie
SQL SELF, poziom 6, lekcja 3
Niedostępne
Unikalne zamówienia z formatowaniem klientów
Unikalne zamówienia z formatowaniem klientów
Komentarze
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION