Rötar neden yayılır?
Bir uçak gün içinde birkaç sefer yapar. Önceki sefer geç inerse sonraki sefer de geç kalkabilir: buna rötar zinciri (gec_gelen_ucak) denir. Kanat'ta bir sefer en az 15 dakika geç indiğinde aynı uçağın sonraki seferi %48,0 olasılıkla en az 15 dakika geç kalkıyor; zamanında indiğinde bu oran %32,6. Farkı görmek için aynı uçağın uçuşlarını zaman sırasına koyup bir önceki satıra bakmak gerekir; tam olarak pencere fonksiyonlarının işi.
hv_repositioning tablosundadır. Filo seyrek çalıştığı için önceki iniş ile planlanan kalkış arası medyan 472 dakikadır: 342 gec_gelen_ucak satırının yalnız 12'sinde uçak planlanan saatte hazır değildi. Bu neden “önceki sefer geç indi” demektir, tek başına neden-sonuç kanıtı değildir.SELECT f.tail_no, f.sched_dep, f.flight_no,
ROUND((julianday(f.actual_dep) - julianday(f.sched_dep)) * 1440) AS gecikme,
LAG(ROUND((julianday(f.actual_dep) - julianday(f.sched_dep)) * 1440)) OVER (PARTITION BY f.tail_no ORDER BY f.sched_dep, f.flight_id) AS onceki_gecikme
FROM hv_flights f
WHERE f.tail_no = 'TC-KNA'
AND f.sched_dep >= '2024-12-01' AND f.sched_dep < '2024-12-03'
ORDER BY f.sched_dep;
Sıralama ve pay
SELECT p.tier, ROUND(SUM(b.price)) AS harcama,
ROUND(100.0 * SUM(b.price) / SUM(SUM(b.price)) OVER (), 1) AS pay
FROM hv_bookings b
JOIN hv_passengers p ON p.passenger_id = b.passenger_id
WHERE b.status = 'flown'
GROUP BY p.tier;
SUM(SUM(b.price)) OVER () ilk bakışta tuhaf görünür: içteki SUM gruplamadan, dıştaki pencereden gelir. Önce her seviyenin toplamı hesaplanır, sonra bu toplamların genel toplamı her satıra yazılır.