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.