Ana içeriğe geç
Kesit SQL
Temel · Kanat Havayolları

Saat ve süre hesapları: rötar dakikası, saat dilimleri, zamanında kalkış

İki zaman arasındaki dakika farkı, saate ve aya göre gruplama, zamanında kalkış oranı ve rezervasyon öncesi gün sayısı.

Uygulamada aç, 7 alıştırmayı çözÜcretsiz, hesap gerekmez, kurulum yok.

Bu sayfa dersin okuma sürümüdür. Metin bir kutuyu çalıştırmanı ya da adıma geçmeni söylüyorsa dersi uygulamada aç.

İki zaman arasındaki fark

Havayolunda her şey dakikayla ölçülür. Kalkış gecikmesi = gerçek kalkış − planlanan kalkış. Her SQL türünün yazımı farklıdır:

SQL türüDakika farkı
SQL ServerDATEDIFF(minute, sched_dep, actual_dep)
PostgreSQLEXTRACT(EPOCH FROM (actual_dep - sched_dep)) / 60
MySQLTIMESTAMPDIFF(MINUTE, sched_dep, actual_dep)
Oracle(actual_dep - sched_dep) * 1440 (DATE farkı gün cinsindendir)
BigQueryDATETIME_DIFF(actual_dep, sched_dep, MINUTE)
SQLite(julianday(actual_dep) - julianday(sched_dep)) * 1440
SELECT f.flight_id, f.flight_no, f.sched_dep, f.actual_dep,
       ROUND((julianday(f.actual_dep) - julianday(f.sched_dep)) * 1440) AS gecikme_dk
FROM hv_flights f
WHERE f.sched_dep >= '2024-12-24' AND f.sched_dep < '2024-12-25'
ORDER BY f.sched_dep
LIMIT 5;
Gün farkı ile dakika farkı aynı şey değilSQL Server'da DATEDIFF(day, a, b) arada geçen gece yarısı sayısını verir: 23:50 ile ertesi gün 00:10 arasında 20 dakika olsa da sonuç 1'dir. Süre ölçerken her zaman küçük birimle (dakika) hesapla, sonra gerekirse böl.

Zamanında kalkış (on-time performance)

Sektörde bir uçuş planlanan saatten en fazla 15 dakika sonra kalktıysa “zamanında” sayılır. Oran hesabında iptal edilen uçuşlar paydaya girmez:

SELECT ROUND(100.0 * SUM(CASE WHEN ROUND((julianday(f.actual_dep) - julianday(f.sched_dep)) * 1440) <= 15 THEN 1 ELSE 0 END) / COUNT(*), 1) AS otp
FROM hv_flights f
WHERE f.actual_dep IS NOT NULL;

Saate ve aya göre gruplamak

Kalkış saati için saat parçasını al, ay için yıl-ay metnini kullan. Takvim gün farkı gerektiğinde iki tarafı da önce güne çevir; böylece saat kesirleri sonucu kaydırmaz.

Alıştırmalara geç (7)