Çalışan sorgu ≠ doğru sorgu
Yapay zekânın ürettiği sorgular genellikle hatasız çalışır ama yanlış sonuç verebilir. En tehlikeli hatalar sessiz olanlardır: sayı makul görünür, kimse fark etmez. Bu derste tipik hataları ve her sorgu için uygulanacak kontrol listesini görüyoruz.
Sekiz maddelik kontrol listesi
- Sütunlar gerçekten var mı? Model, olmayan bir sütun uydurabilir (
orders.total_amountgibi). - JOIN satırları çoğaltıyor mu? Sipariş tablosunu satır tablosuyla birleştirip sipariş sayarken
COUNT(DISTINCT ...)gerekir. - Filtre doğru yerde mi? LEFT JOIN'den sonra sağ tabloya WHERE yazmak onu INNER JOIN'e çevirir.
- Tarih aralığı kapalı mı?
BETWEEN '2024-01-01' AND '2024-12-31', saatli sütunlarda son günü kaçırır;< '2025-01-01'güvenlidir. - Tam sayı bölmesi var mı? Oranlarda
100.0 *unutulmuş olabilir. - NULL'lar hesaba katıldı mı?
COUNT(sutun), NULL'ları saymaz;NOT INlistesinde NULL varsa hiç satır dönmez. - İş kuralı uygulandı mı? İptal ve iadeler dışlandı mı? İndirim düşüldü mü?
- Sağlama yaptın mı? Toplamı bilinen bir rakamla karşılaştır; alt kırılımların toplamı genel toplama eşit mi?
Örnek: sessiz çoğalma
Soru: “Kanal bazında sipariş sayısı.” Yapay zekâ şunu yazdı:
-- YZ'nin sorgusu: order_items ile birleştiği için her sipariş satır sayısı kadar sayılır SELECT o.channel, COUNT(*) AS siparis FROM orders o JOIN order_items oi ON oi.order_id = o.order_id GROUP BY o.channel;
-- Doğrusu SELECT channel, COUNT(*) AS siparis FROM orders GROUP BY channel;
Yapay zekâdan doğrulama iste“Bu sorgunun sonucunu doğrulamak için hangi kontrol sorgularını çalıştırmalıyım?” diye sormak, modelin kendi hatalarını yakalamasını kolaylaştırır. Yine de son kontrol sende.