TakeOrderedAndProject [substr(w_warehouse_name, 1, 20),sm_type,cc_name,30 days ,31 - 60 days ,61 - 90 days ,91 - 120 days ,>120 days ]
  WholeStageCodegen (6)
    HashAggregate [_groupingexpression,sm_type,cc_name,sum,sum,sum,sum,sum] [sum(CASE WHEN ((cs_ship_date_sk - cs_sold_date_sk) <= 30) THEN 1 ELSE 0 END),sum(CASE WHEN (((cs_ship_date_sk - cs_sold_date_sk) > 30) AND ((cs_ship_date_sk - cs_sold_date_sk) <= 60)) THEN 1 ELSE 0 END),sum(CASE WHEN (((cs_ship_date_sk - cs_sold_date_sk) > 60) AND ((cs_ship_date_sk - cs_sold_date_sk) <= 90)) THEN 1 ELSE 0 END),sum(CASE WHEN (((cs_ship_date_sk - cs_sold_date_sk) > 90) AND ((cs_ship_date_sk - cs_sold_date_sk) <= 120)) THEN 1 ELSE 0 END),sum(CASE WHEN ((cs_ship_date_sk - cs_sold_date_sk) > 120) THEN 1 ELSE 0 END),substr(w_warehouse_name, 1, 20),30 days ,31 - 60 days ,61 - 90 days ,91 - 120 days ,>120 days ,sum,sum,sum,sum,sum]
      InputAdapter
        Exchange [_groupingexpression,sm_type,cc_name] #1
          WholeStageCodegen (5)
            HashAggregate [_groupingexpression,sm_type,cc_name,cs_ship_date_sk,cs_sold_date_sk] [sum,sum,sum,sum,sum,sum,sum,sum,sum,sum]
              Project [cs_ship_date_sk,cs_sold_date_sk,sm_type,cc_name,w_warehouse_name]
                BroadcastHashJoin [cs_ship_date_sk,d_date_sk]
                  Project [cs_ship_date_sk,cs_sold_date_sk,w_warehouse_name,sm_type,cc_name]
                    BroadcastHashJoin [cs_call_center_sk,cc_call_center_sk]
                      Project [cs_ship_date_sk,cs_call_center_sk,cs_sold_date_sk,w_warehouse_name,sm_type]
                        BroadcastHashJoin [cs_ship_mode_sk,sm_ship_mode_sk]
                          Project [cs_ship_date_sk,cs_call_center_sk,cs_ship_mode_sk,cs_sold_date_sk,w_warehouse_name]
                            BroadcastHashJoin [cs_warehouse_sk,w_warehouse_sk]
                              Filter [cs_warehouse_sk,cs_ship_mode_sk,cs_call_center_sk,cs_ship_date_sk]
                                ColumnarToRow
                                  InputAdapter
                                    Scan parquet spark_catalog.default.catalog_sales [cs_ship_date_sk,cs_call_center_sk,cs_ship_mode_sk,cs_warehouse_sk,cs_sold_date_sk]
                              InputAdapter
                                BroadcastExchange #2
                                  WholeStageCodegen (1)
                                    Filter [w_warehouse_sk]
                                      ColumnarToRow
                                        InputAdapter
                                          Scan parquet spark_catalog.default.warehouse [w_warehouse_sk,w_warehouse_name]
                          InputAdapter
                            BroadcastExchange #3
                              WholeStageCodegen (2)
                                Filter [sm_ship_mode_sk]
                                  ColumnarToRow
                                    InputAdapter
                                      Scan parquet spark_catalog.default.ship_mode [sm_ship_mode_sk,sm_type]
                      InputAdapter
                        BroadcastExchange #4
                          WholeStageCodegen (3)
                            Filter [cc_call_center_sk]
                              ColumnarToRow
                                InputAdapter
                                  Scan parquet spark_catalog.default.call_center [cc_call_center_sk,cc_name]
                  InputAdapter
                    BroadcastExchange #5
                      WholeStageCodegen (4)
                        Project [d_date_sk]
                          Filter [d_month_seq,d_date_sk]
                            ColumnarToRow
                              InputAdapter
                                Scan parquet spark_catalog.default.date_dim [d_date_sk,d_month_seq]
