Bir online anket platformu · Orta
Yüzde Hesabı (CAST Tuzağı)
Bir online anket platformunda anket sonuçlarını analiz ediyorsun. Her anket (poll_id) için "evet" oyu yüzdesini hesaplaman isteniyor — ama dikkat, tam sayı bölmesi bu hesapta sinsi bir tuzak kurar.
Görev: Her poll_id için 'evet' (is_yes = 1) oy yüzdesini (poll_id, evet_yuzdesi olarak, ondalık basamaklarıyla) getiren bir sorgu yaz.
Tablo: poll_votes
Yükleniyor…
Bir online anket platformunda anket sonuçlarını analiz ediyorsun. Her anket (poll_id) için "evet" oyu yüzdesini hesaplaman isteniyor — ama dikkat, tam sayı bölmesi bu hesapta sinsi bir tuzak kurar.
Görev: Her poll_id için 'evet' (is_yes = 1) oy yüzdesini (poll_id, evet_yuzdesi olarak, ondalık basamaklarıyla) getiren bir sorgu yaz.
Şema
CREATE TABLE poll_votes ( vote_id INTEGER PRIMARY KEY, poll_id INTEGER NOT NULL, is_yes INTEGER NOT NULL ); INSERT INTO poll_votes (vote_id, poll_id, is_yes) VALUES (1, 1, 1), (2, 1, 1), (3, 1, 1), (4, 1, 1), (5, 1, 1), (6, 1, 1), (7, 1, 1), (8, 1, 0), (9, 1, 0), (10, 1, 0), (11, 1, 0), (12, 2, 1), (13, 2, 1), (14, 2, 0), (15, 2, 0), (16, 2, 0), (17, 2, 0), (18, 2, 0), (19, 2, 0), (20, 2, 0);
SQL cevabın:
🎤 Takip Sorusu: Peki neden CAST(SUM(is_yes) AS REAL) * 100 / COUNT(*) yazdık da SUM(is_yes) * 100 / CAST(COUNT(*) AS REAL) yazmadık — ikisi de çalışır mı?