WholeStageCodegen (1)
  Project
    Subquery #1
      WholeStageCodegen (2)
        HashAggregate [count] [count(1),count(1),count]
          InputAdapter
            Exchange #1
              WholeStageCodegen (1)
                HashAggregate [count,count]
                  Project
                    Filter [ss_quantity]
                      ColumnarToRow
                        InputAdapter
                          Scan parquet default.store_sales [ss_quantity,ss_sold_date_sk]
    Subquery #2
      WholeStageCodegen (2)
        HashAggregate [sum,count] [avg(UnscaledValue(ss_ext_discount_amt)),avg(ss_ext_discount_amt),sum,count]
          InputAdapter
            Exchange #2
              WholeStageCodegen (1)
                HashAggregate [ss_ext_discount_amt] [sum,count,sum,count]
                  Project [ss_ext_discount_amt]
                    Filter [ss_quantity]
                      ColumnarToRow
                        InputAdapter
                          Scan parquet default.store_sales [ss_quantity,ss_ext_discount_amt,ss_sold_date_sk]
    Subquery #3
      WholeStageCodegen (2)
        HashAggregate [sum,count] [avg(UnscaledValue(ss_net_paid)),avg(ss_net_paid),sum,count]
          InputAdapter
            Exchange #3
              WholeStageCodegen (1)
                HashAggregate [ss_net_paid] [sum,count,sum,count]
                  Project [ss_net_paid]
                    Filter [ss_quantity]
                      ColumnarToRow
                        InputAdapter
                          Scan parquet default.store_sales [ss_quantity,ss_net_paid,ss_sold_date_sk]
    Subquery #4
      WholeStageCodegen (2)
        HashAggregate [count] [count(1),count(1),count]
          InputAdapter
            Exchange #4
              WholeStageCodegen (1)
                HashAggregate [count,count]
                  Project
                    Filter [ss_quantity]
                      ColumnarToRow
                        InputAdapter
                          Scan parquet default.store_sales [ss_quantity,ss_sold_date_sk]
    Subquery #5
      WholeStageCodegen (2)
        HashAggregate [sum,count] [avg(UnscaledValue(ss_ext_discount_amt)),avg(ss_ext_discount_amt),sum,count]
          InputAdapter
            Exchange #5
              WholeStageCodegen (1)
                HashAggregate [ss_ext_discount_amt] [sum,count,sum,count]
                  Project [ss_ext_discount_amt]
                    Filter [ss_quantity]
                      ColumnarToRow
                        InputAdapter
                          Scan parquet default.store_sales [ss_quantity,ss_ext_discount_amt,ss_sold_date_sk]
    Subquery #6
      WholeStageCodegen (2)
        HashAggregate [sum,count] [avg(UnscaledValue(ss_net_paid)),avg(ss_net_paid),sum,count]
          InputAdapter
            Exchange #6
              WholeStageCodegen (1)
                HashAggregate [ss_net_paid] [sum,count,sum,count]
                  Project [ss_net_paid]
                    Filter [ss_quantity]
                      ColumnarToRow
                        InputAdapter
                          Scan parquet default.store_sales [ss_quantity,ss_net_paid,ss_sold_date_sk]
    Subquery #7
      WholeStageCodegen (2)
        HashAggregate [count] [count(1),count(1),count]
          InputAdapter
            Exchange #7
              WholeStageCodegen (1)
                HashAggregate [count,count]
                  Project
                    Filter [ss_quantity]
                      ColumnarToRow
                        InputAdapter
                          Scan parquet default.store_sales [ss_quantity,ss_sold_date_sk]
    Subquery #8
      WholeStageCodegen (2)
        HashAggregate [sum,count] [avg(UnscaledValue(ss_ext_discount_amt)),avg(ss_ext_discount_amt),sum,count]
          InputAdapter
            Exchange #8
              WholeStageCodegen (1)
                HashAggregate [ss_ext_discount_amt] [sum,count,sum,count]
                  Project [ss_ext_discount_amt]
                    Filter [ss_quantity]
                      ColumnarToRow
                        InputAdapter
                          Scan parquet default.store_sales [ss_quantity,ss_ext_discount_amt,ss_sold_date_sk]
    Subquery #9
      WholeStageCodegen (2)
        HashAggregate [sum,count] [avg(UnscaledValue(ss_net_paid)),avg(ss_net_paid),sum,count]
          InputAdapter
            Exchange #9
              WholeStageCodegen (1)
                HashAggregate [ss_net_paid] [sum,count,sum,count]
                  Project [ss_net_paid]
                    Filter [ss_quantity]
                      ColumnarToRow
                        InputAdapter
                          Scan parquet default.store_sales [ss_quantity,ss_net_paid,ss_sold_date_sk]
    Subquery #10
      WholeStageCodegen (2)
        HashAggregate [count] [count(1),count(1),count]
          InputAdapter
            Exchange #10
              WholeStageCodegen (1)
                HashAggregate [count,count]
                  Project
                    Filter [ss_quantity]
                      ColumnarToRow
                        InputAdapter
                          Scan parquet default.store_sales [ss_quantity,ss_sold_date_sk]
    Subquery #11
      WholeStageCodegen (2)
        HashAggregate [sum,count] [avg(UnscaledValue(ss_ext_discount_amt)),avg(ss_ext_discount_amt),sum,count]
          InputAdapter
            Exchange #11
              WholeStageCodegen (1)
                HashAggregate [ss_ext_discount_amt] [sum,count,sum,count]
                  Project [ss_ext_discount_amt]
                    Filter [ss_quantity]
                      ColumnarToRow
                        InputAdapter
                          Scan parquet default.store_sales [ss_quantity,ss_ext_discount_amt,ss_sold_date_sk]
    Subquery #12
      WholeStageCodegen (2)
        HashAggregate [sum,count] [avg(UnscaledValue(ss_net_paid)),avg(ss_net_paid),sum,count]
          InputAdapter
            Exchange #12
              WholeStageCodegen (1)
                HashAggregate [ss_net_paid] [sum,count,sum,count]
                  Project [ss_net_paid]
                    Filter [ss_quantity]
                      ColumnarToRow
                        InputAdapter
                          Scan parquet default.store_sales [ss_quantity,ss_net_paid,ss_sold_date_sk]
    Subquery #13
      WholeStageCodegen (2)
        HashAggregate [count] [count(1),count(1),count]
          InputAdapter
            Exchange #13
              WholeStageCodegen (1)
                HashAggregate [count,count]
                  Project
                    Filter [ss_quantity]
                      ColumnarToRow
                        InputAdapter
                          Scan parquet default.store_sales [ss_quantity,ss_sold_date_sk]
    Subquery #14
      WholeStageCodegen (2)
        HashAggregate [sum,count] [avg(UnscaledValue(ss_ext_discount_amt)),avg(ss_ext_discount_amt),sum,count]
          InputAdapter
            Exchange #14
              WholeStageCodegen (1)
                HashAggregate [ss_ext_discount_amt] [sum,count,sum,count]
                  Project [ss_ext_discount_amt]
                    Filter [ss_quantity]
                      ColumnarToRow
                        InputAdapter
                          Scan parquet default.store_sales [ss_quantity,ss_ext_discount_amt,ss_sold_date_sk]
    Subquery #15
      WholeStageCodegen (2)
        HashAggregate [sum,count] [avg(UnscaledValue(ss_net_paid)),avg(ss_net_paid),sum,count]
          InputAdapter
            Exchange #15
              WholeStageCodegen (1)
                HashAggregate [ss_net_paid] [sum,count,sum,count]
                  Project [ss_net_paid]
                    Filter [ss_quantity]
                      ColumnarToRow
                        InputAdapter
                          Scan parquet default.store_sales [ss_quantity,ss_net_paid,ss_sold_date_sk]
    Filter [r_reason_sk]
      ColumnarToRow
        InputAdapter
          Scan parquet default.reason [r_reason_sk]
