Senaryo
Lezzet Kurye operasyon müdürü yapay zekâ asistanına şunu sordu: "Kuryeleri zamanında teslim oranına göre sırala. En az 100 teslimatı olan ve oranı %85 ve üstü olanlara prim vereceğiz." Asistan aşağıdaki sorguyu yazdı. Sonuç listesi makul görünüyor, müdür listeyi insan kaynaklarına göndermek üzere. Senden önce bir kontrol istiyor.
SELECT c.full_name, COUNT(*) AS teslimat,
ROUND(100.0 * SUM(CASE WHEN (julianday(o.delivered_at) - julianday(o.placed_at)) * 1440 <= 45 THEN 1 ELSE 0 END) / COUNT(*), 1) AS oran
FROM lk_orders o
JOIN lk_couriers c ON c.courier_id = o.courier_id
JOIN lk_order_lines l ON l.order_id = o.order_id
GROUP BY c.full_name
HAVING COUNT(*) >= 100 AND ROUND(100.0 * SUM(CASE WHEN (julianday(o.delivered_at) - julianday(o.placed_at)) * 1440 <= 45 THEN 1 ELSE 0 END) / COUNT(*), 1) >= 85
ORDER BY oran DESC;
İş kuralı: Zamanında teslim, sipariş verildikten sonra en çok 45 dakika (2.700 saniye) demektir. Yalnız status = 'teslim' sayılır: iptal ve iade teslimat değildir. Kurye kimliği courier_id ile belirlenir.
Adımlar
| Adım | Soru |
|---|---|
| 1 | Asistana ne verilmeliydi? |
| 2 | Satır sayısı neyi saydığını söylüyor mu? |
| 3 | Her durumdan kaçı sayılmış? |
| 4 | Ad ile gruplamak güvenli mi? |
| 5 | Düzeltilmiş sorgu |
| 6 | Düzeltilmiş sonuç kaynakla tutuyor mu? |
| 7 | Hata kimi etkiledi? |
| 8 | Tek tanım: görünüm |
| 9-10 | Karar ve güvenli kullanım |
Teslim
Kısa not: Bulunan hatalar, her birinin sayısal etkisi, doğru liste ve bundan sonra kullanılacak görünüm.
Kendini değerlendir
| Ölçüt | Başlangıç | İyi | Mükemmel |
|---|---|---|---|
| Doğrulama | Sorgu çalıştı | Toplamlar kaynakla sağlandı | Her hatanın etkisi sayıyla gösterildi |
| Düzeltme | Liste düzeldi | İş kuralı yazılı | Tek tanım görünüme alındı |
| Karar | Liste gönderildi | Etkilenenler söylendi | İnsan onayı ve veri paylaşım kuralı belirlendi |