Press "Enter" to skip to content

Sql Join ve Having kullanımı

Selahaddin Erdoğan 0

Bu yazımızda iki sql tablosunu birbirine bağlama, sum ve having fonksiyonu kullanma buna ek olarak where şartına göre sorgu düzenlemeyi inceleyeceğiz.

 

Elimizdeki senaryo

Tablo 1: yazarlar

  • id → Yazar ID

  • ad_soyad → Yazar adı

  • ulke → Yaşadığı ülke

Tablo 2: kitaplar

  • id → Kitap ID

  • yazar_id → Kitabın yazarı

  • satilan_adet → Satılan kitap adedi

  • satis_tarihi → Satış tarihi (YYYY-AA-GG)

 

Bu tabloya göre bir yazarın 2023 yılı içerisindeki toplam sattığı kitap miktarını listeleyelim.

SELECT
y.id,
y.ad_soyad,
SUM(k.satilan_adet) AS toplam_satis
FROM yazarlar y
JOIN kitaplar k
ON y.id = k.yazar_id
WHERE
y.ulke = ‘Türkiye’
AND YEAR(k.satis_tarihi) = 2023
GROUP BY
y.id, y.ad_soyad;

Şimdi de kaç satış kaydı olduğunu gösteren sorguyu yazalım

SELECT
y.id,
COUNT(k.id) AS toplam_satis_kaydi
FROM yazarlar y
JOIN kitaplar k
ON y.id = k.yazar_id
WHERE
y.ulke = ‘Türkiye’
AND YEAR(k.satis_tarihi) = 2025
GROUP BY
y.id;

 

Sonuç olarak 2 sini birleştirebiliriz.

 

 

 

SELECT
y.ad_soyad AS yazar_adi,
SUM(k.satilan_adet) AS toplam_satis,
COUNT(k.id) AS toplam_satis_kaydi
FROM yazarlar y
INNER JOIN kitaplar k
ON y.id = k.yazar_id
WHERE
y.ulke = ‘Türkiye’
AND YEAR(k.satis_tarihi) = 2023
GROUP BY
y.id, y.ad_soyad
HAVING
SUM(k.satilan_adet) >= 10000
ORDER BY
toplam_satis DESC;

Comments are closed.