Tabloları birleştirme

SQL ile Raporlama

Tyler Pernes

Learning & Development Consultant

Hedef rapor

Demografik Gruba Göre Altın Madalyalar
(Yalnızca Batı Avrupa Ülkeleri)
+----------+--------------------+-------+
| season   |  demographic_group | golds |
|----------+--------------------+-------|
| Winter   | Male Age 26+       | 13    |
| Winter   | Female Age 26+     | 8     |
| Summer   | Male Age 13-25     | 7     |
| Summer   | Female Age 13-25   | 6     |
| Winter   | Male Age 13-25     | 4     |
| Summer   | Male Age 26+       | 4     |
| Winter   | Female Age 13-25   | 4     |
| Summer   | Female Age 26+     | 2     |
+----------+--------------------+-------+
SQL ile Raporlama

İlgili tablolar

SQL ile Raporlama

İlgili tablolar

SQL ile Raporlama

Seçenek A: Önce JOIN, sonra UNION

SQL ile Raporlama

Seçenek A: Önce JOIN, sonra UNION

Adım 1: JOIN ile üst sorguyu kurun

SELECT 
    athlete_id, 
    gender, 
    age, 
    gold  
FROM summer_games AS sg
JOIN athletes AS a 
ON sg.athlete_id = a.id;
Sorgu başarıyla çalıştı!
SQL ile Raporlama

Seçenek A: Önce JOIN, sonra UNION

Adım 2: Alt sorguyu kurun + ikisini UNION ile birleştirin

SELECT 
    athlete_id, 
    gender, 
    age, 
    gold  
FROM summer_games AS sg
JOIN athletes AS a 
ON sg.athlete_id = a.id
UNION ALL
SELECT 
    athlete_id, 
    gender, 
    age, 
    gold  
FROM winter_games AS wg
JOIN athletes AS a 
ON wg.athlete_id = a.id;
SQL ile Raporlama

Seçenek B: Önce UNION, sonra JOIN

SQL ile Raporlama

Seçenek B: Önce UNION, sonra JOIN

Adım 1: İlk UNIONu oluşturun

SELECT 
    athlete_id, 
    gold  
FROM summer_games AS sg
UNION
SELECT 
    athlete_id, 
    gold  
FROM winter_games AS wg;
SQL ile Raporlama

Seçenek B: Önce UNION, sonra JOIN

Adım 2: Alt sorguya çevirin + JOIN yapın

SELECT 
    athlete_id, 
    gender, 
    age, 
    gold  
FROM
    (SELECT 
         athlete_id, 
         gold  
    FROM summer_games AS sg
    UNION ALL
    SELECT athlete_id, gold  
    FROM winter_games AS wg) AS g
JOIN athletes AS a 
ON g.athlete_id = a.id;
SQL ile Raporlama

Karşılaştırma

Seçenek A

SELECT 
    athlete_id, 
    gender, 
    age, 
    gold  
FROM summer_games AS sg
JOIN athletes AS a 
ON sg.athlete_id = a.id
UNION ALL
SELECT 
    athlete_id, 
    gender, 
    age, 
    gold  
FROM winter_games AS wg
JOIN athletes AS a 
ON wg.athlete_id = a.id;

Seçenek B

SELECT 
    athlete_id, 
    gender, 
    age, 
    gold  
FROM
    (SELECT 
         athlete_id, 
         gold  
    FROM summer_games AS sg
    UNION ALL
    SELECT athlete_id, gold  
    FROM winter_games AS wg) AS g
JOIN athletes AS a 
ON g.athlete_id = a.id;
SQL ile Raporlama

Önemli çıkarımlar

  • Aynı raporu oluşturmanın birkaç yolu
  • Adım adım = sorun gidermesi daha kolay
SQL ile Raporlama

Sorgu zamanı!

SQL ile Raporlama

Preparing Video For Download...