Flight Data — Late Aircraft (Cascade) Delay Patterns
Flight Data benchmark · all Flight Data queries
Flights delayed due to late incoming aircraft by carrier
Representative SQL
Rendered in the benchmark’s native SQL with default parameters (no dialect translation available).
SELECT f.reporting_airline, a.name AS airline_name, COUNT(*) AS total_flights, SUM(CASE WHEN f.late_aircraft_delay > 0 THEN 1 ELSE 0 END) AS cascade_delayed, ROUND(100.0 * SUM(CASE WHEN f.late_aircraft_delay > 0 THEN 1 ELSE 0 END) / COUNT(*), 2) AS cascade_rate_pct, ROUND(AVG(CASE WHEN f.late_aircraft_delay > 0 THEN f.late_aircraft_delay END), 2) AS avg_cascade_delay, FLOOR( ( SUM( CAST(CASE WHEN f.late_aircraft_delay > 0 THEN ROUND(f.late_aircraft_delay * 10) ELSE 0 END AS BIGINT) ) + 5 ) / 10 ) AS total_cascade_minutesFROM flights AS fLEFT JOIN airlines AS a ON f.reporting_airline = a.codeWHERE f.cancelled = 0 AND f.flight_date >= '2021-08-01' AND f.flight_date < '2025-01-01'GROUP BY f.reporting_airline, a.nameORDER BY cascade_rate_pct DESC, f.reporting_airlineRepresentative DataFrame
Expression family (Polars, PySpark, DataFusion), default parameters.
def cascade_delays_expression_impl(ctx: DataFrameContext) -> Any: flights = ctx.get_table("flights") col, lit = ctx.col, ctx.lit
return ( flights.join(_airline_names(ctx), left_on="reporting_airline", right_on="a_code", how="left") .filter(_date_condition(col, lit, lambda col, lit: col("cancelled") == lit(0))) .with_columns( (col("late_aircraft_delay") > lit(0)).cast(int).alias("_cascade"), ctx.when(col("late_aircraft_delay") > lit(0)) .then(col("late_aircraft_delay")) .otherwise(lit(None)) .alias("_cascade_pos"), ctx.when(col("late_aircraft_delay") > lit(0)) .then(_round_half_away(ctx, col("late_aircraft_delay") * lit(10), 0).cast(int)) .otherwise(lit(0)) .alias("_late_tenths"), ) .group_by("reporting_airline", "airline_name") .agg( col("flight_id").count().alias("total_flights"), col("_cascade").sum().alias("cascade_delayed"), col("_cascade_pos").mean().alias("_avg_cascade"), col("_late_tenths").sum().alias("_total_tenths"), ) .with_columns( _round_half_away(ctx, lit(100.0) * col("cascade_delayed") / col("total_flights"), 2).alias( "cascade_rate_pct" ), _round_half_away(ctx, col("_avg_cascade"), 2).alias("avg_cascade_delay"), ((col("_total_tenths") + lit(5)) / lit(10)).floor().alias("total_cascade_minutes"), ) .select( "reporting_airline", "airline_name", "total_flights", "cascade_delayed", "cascade_rate_pct", "avg_cascade_delay", "total_cascade_minutes", ) .sort(["cascade_rate_pct", "reporting_airline"], descending=[True, False]) )Get the exact query for your run
The blocks above are representative. To get the precise statement a specific platform runs at a specific scale, substitute your own values:
from benchbox import FlightData
bench = FlightData(scale_factor=1.0) # your scale factorprint(bench.get_queries()['cascade-delays'])For the DataFrame form:
from benchbox.core.query_catalog import get_dataframe_render
print(get_dataframe_render('flightdata', 'cascade-delays', family="expression").source) # or family="pandas"Source
Query text: benchbox/core/flightdata/queries.py