Referandum Verileri
Zorluk Seviyesi 1
İlçe bilgisi olmayan kayıtları siliniz
Cevap
```SQL
DELETE FROM referandum WHERE ilce='';
```
İl ve ilçeye göre sıralı liste
Cevap
```SQL
SELECT il, ilce FROM referandum ORDER BY il, ilce;
```
Türkiye toplam seçmen adedi
Cevap
```SQL
SELECT SUM(kayitli) FROM referandum;
```
Türkiye toplam geçerli oy adedi
Cevap
```SQL
SELECT SUM(gecerli) AS 'GEÇERLİ OY' FROM referandum;
```
Türkiye geneli özet (toplam seçmen, toplam geçerli, vb.)
Cevap
```SQL
SELECT
SUM(kayitli) AS 'Kayıtlı Seçmen Sayısı',
SUM(oykullanan) AS 'Oy Kullanan Seçmen Sayısı',
SUM(gecerli) AS 'Geçerli Oy Sayısı',
SUM(gecersiz) AS 'Geçersiz Oy Sayısı',
SUM(evet) AS 'Evet Sayısı',
SUM(hayir) AS 'Hayır Sayısı'
FROM referandum;
```
İlçe nüfusu 1500 kişiden daha az ilçeler
Cevap
```SQL
SELECT * FROM referandum WHERE kayitli < 1500;
```
Zorluk Seviyesi 2
En çok geçersiz oy kullanan il ve geçersiz oy sayısı
Cevap
```SQL
SELECT il, SUM(gecersiz) AS 'Geçersiz Oy Sayısı' FROM referandum
GROUP BY il
ORDER BY 2 DESC
LIMIT 1;
```
En fazla geçerli oy kullanan ilk 3 il
Cevap
```SQL
SELECT il, SUM(gecerli) AS 'Geçerli Oy Sayısı' FROM referandum
GROUP BY il
ORDER BY 2 DESC
LIMIT 3;
```
Ankara, İstanbul ve İzmirdeki geçersiz oylar toplamı
Cevap1
```SQL
SELECT SUM(gecersiz) FROM referandum
WHERE il='Ankara' OR il='İstanbul' OR il='İzmir';
```
Cevap2
```SQL
SELECT SUM(gecersiz) FROM referandum
WHERE il IN ('Ankara', 'İstanbul', 'İzmir');
```
Adana ve Diyarbakır hariç Evet oylar toplamı
Cevap1
```SQL
SELECT SUM(evet) FROM referandum
WHERE il NOT IN ('Diyarbakır', 'Adana');
```
Cevap2
```SQL
SELECT SUM(evet) FROM referandum
WHERE il != "Diyarbakır" AND il != "Adana";
```
Adana ve Diyarbakır için Evet oylar toplamı
Cevap1
```SQL
SELECT SUM(evet) FROM referandum
WHERE il IN ("Diyarbakır", "Adana");;
```
Cevap2
```SQL
SELECT SUM(evet) FROM referandum
WHERE il = "Diyarbakır" OR il = "Adana";
```
Her ilin ilçe sayısı
Cevap
```SQL
SELECT il AS "İL" , count(1) AS "İLÇE ADEDİ" FROM referandum GROUP BY il;
```
Zorluk Seviyesi 3
İl nüfusuna oranla en yüksek geçersiz oy kullanan il
Cevap
```SQL
SELECT il, SUM(gecersiz)/SUM(kayitli) AS 'Geçersiz Oy Oranı' FROM referandum
GROUP BY il
ORDER BY 2 DESC
LIMIT 1;
```
A, B ve C harfi ile başlayan şehirlerin hayır adedi toplamı
Cevap1
```SQL
SELECT il, SUM(hayir) AS 'Hayır Adedi' FROM referandum
WHERE il LIKE 'A%'
OR il LIKE 'B%'
OR il LIKE 'C%';
```
Cevap2
```SQL
SELECT il, SUM(hayir) AS 'Hayır Adedi' FROM referandum
WHERE LEFT(il,1) IN ('A', 'B', 'C');
```
Zorluk Seviyesi 4
oykullanmayan adlı sahayı tanımlayın ve değerlerini doldurun
Cevap
```SQL
ALTER TABLE referandum
ADD oykullanmayan decimal(7,4) NOT NULL;
UPDATE referandum SET oykullanmayan = kayitli - oykullanan;
```
Tabloya, evet_oran ve hayir_oran adlı 2 saha ekleyin. Veri hassasiyeti 4 hane olsun.
Cevap
```SQL
ALTER TABLE referandum
ADD evet_oran decimal(6,2) NOT NULL,
ADD hayir_oran decimal(6,2) NOT NULL AFTER evet_oran;
```
evet_oran = evet / geçerli * 100;
hayir_oran = hayir / geçerli * 100;
Cevap
```SQL
UPDATE referandum SET evet_oran = (evet/gecerli)*100;
UPDATE referandum SET hayir_oran = (hayir/gecerli)*100;
```
Veriler üzerinde tutarlılık kontrolleri yapınız
Örnek:
- Evet+Hayır = Geçerli
- kayitli >= geçerli+geçersiz
- Geçerli+Geçersiz = Oy kullanan
Cevap
```SQL
SELECT * FROM referandum WHERE evet+hayir-gecerli <> 0;
SELECT * FROM referandum WHERE gecerli+gecersiz < kayitli;
SELECT * FROM referandum WHERE gecerli+gecersiz-oykullanan != 0;
```