CodeGym /Kurslar /SQL SELF /Real tapşırıqlarda məlumatların formatlanması və sıralanm...

Real tapşırıqlarda məlumatların formatlanması və sıralanması nümunələri

SQL SELF
Səviyyə , Dərs
Mövcuddur

Məlumatların sıralanması və formatlanması — oxunaqlı hesabatlar hazırlamaq, data analizini optimallaşdırmaq və istifadəçi ilə işi yaxşılaşdırmaq üçün vacib skill-lərdir. Bu biliklər sənə analitik hesabatlar hazırlayanda, məlumatları eksport üçün hazırlayanda və gündəlik database-lərlə işləyəndə lazım olacaq. Praktikada tez-tez rast gəlirsən ki, məlumatları gözəl formatlamaq, təkrarlanan qeydləri silmək və informasiyanı rahat oxumaq üçün sıralamaq lazımdır. Bu gün məhz bunları edəcəyik!

Nümunə 1: Ad və soyadı birləşdirilmiş, soyada görə sıralanmış unikal müştərilər siyahısı yaratmaq

Bizdə customers cədvəli var, burada müştərilərin məlumatları saxlanılır:

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

Məqsədimiz:

  1. first_namelast_name birləşdirib full_name sütunu yaratmaq.
  2. Yalnız unikal müştəriləri çıxarmaq.
  3. Siyahını soyada (last_name) görə sıralamaq.

SQL-sorğu

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

Diqqət et, Alex Lin təkrarlanan qeydləri DISTINCT sayəsində silindi və tam siyahı soyada görə əlifba sırası ilə düzülüb.

Nümunə 2: Sifariş məlumatlarının formatlanması və sıralanması

orders cədvəlində sifarişlər haqqında məlumatlar saxlanılır:

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

Məqsədimiz:

  1. formatted_order_date sütunu yaratmaq, burada sifariş tarixi DD-MM-YYYY formatında olacaq.
  2. Müştəri və tarix üzrə təkrarlanan qeydləri silmək (yalnız unikal customer_nameorder_date kombinasiyaları qalacaq).
  3. Sifarişləri tarixə görə azalan sırada düz.
  4. SQL-sorğu
SELECT DISTINCT
customer_name,
TO_CHAR(order_date, 'DD-MM-YYYY') AS formatted_order_date,
total_amount
FROM orders
ORDER BY order_date DESC;

Nəticə:

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

Görürsən, TO_CHAR() funksiyası ilə tarixi DD-MM-YYYY formatına çevirdik, DISTINCT isə təkrarlanan qeydləri çıxardı.

Nümunə 3: Tələbələrin "ad + soyad" unikal kombinasiyalarını çıxarmaq və soyad, doğum tarixinə görə sıralamaq

students cədvəlində tələbələr haqqında məlumatlar var:

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

Məqsədimiz:

  • Ad və soyadı birləşdirib full_name sütunu yaratmaq.
  • "ad + soyad" unikal kombinasiyalarını çıxarmaq.
  • Tələbələri əvvəlcə soyada, sonra doğum tarixinə görə sıralamaq.
SELECT DISTINCT
    CONCAT(first_name, ' ', last_name) AS full_name,
    birth_date
FROM students
ORDER BY last_name, birth_date;

Nəticə:

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

Xüsusi diqqət: "Alex Lin" haqqında iki eyni qeyd bir sətrə birləşdirildi, sıralama isə əvvəlcə soyada, sonra doğum tarixinə görə aparıldı.

Praktiki tapşırıq

Bu gün öyrəndiklərini aşağıdakı tapşırıqda tətbiq et:

Tapşırıq: Səndə products cədvəli var, burada aşağıdakı məlumatlar var:

product_id category product_name price
1 Elektronika Telefon 50000
2 Geyim Kurtka 8000
3 Elektronika Noutbuk 70000
4 Geyim Kurtka 8000
  1. formatted_product sütunu yarat, burada product_name və kateqoriya defis ilə birləşir, məsələn: Telefon - Elektronika.
  2. product_namecategory üzrə təkrarlanan kombinasiyaları sil.
  3. Məhsulları əvvəlcə kateqoriyaya, sonra isə qiymətə görə (ən ucuzdan ən bahalıya) sıralayın.

Aşağıda tapşırığı yerinə yetirmək üçün sorğu strukturu verilib:

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

Bu sorğunun nəticəsini özün təsəvvür etməyə çalış!

CONCAT(), DISTINCTORDER BY funksiyalarından istifadə etməklə məlumatların oxunaqlılığını və strukturlaşdırılmasını yüksək səviyyədə saxlamaq olur, bu isə real layihələrdə və tapşırıqlarda çox vacibdir. Onları necə birləşdirməyi başa düşdüyünə əmin ol, nümunələrdə məşq et!

Şərhlər
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION