cross join:
    cross join:
        cross join:
            cross join:
                cross join:
                    final aggregation over ()
                        local exchange (GATHER, SINGLE, [])
                            remote exchange (GATHER, SINGLE, [])
                                partial aggregation over ()
                                    final aggregation over (group, ss_list_price)
                                        local exchange (GATHER, SINGLE, [])
                                            remote exchange (REPARTITION, HASH, [group, ss_list_price])
                                                partial aggregation over (group, ss_list_price)
                                                    scan store_sales
                    final aggregation over ()
                        local exchange (GATHER, SINGLE, [])
                            remote exchange (GATHER, SINGLE, [])
                                partial aggregation over ()
                                    final aggregation over (group_147, ss_list_price_12)
                                        local exchange (GATHER, SINGLE, [])
                                            remote exchange (REPARTITION, HASH, [group_147, ss_list_price_12])
                                                partial aggregation over (group_147, ss_list_price_12)
                                                    scan store_sales
                final aggregation over ()
                    local exchange (GATHER, SINGLE, [])
                        remote exchange (GATHER, SINGLE, [])
                            partial aggregation over ()
                                final aggregation over (group_154, ss_list_price_41)
                                    local exchange (GATHER, SINGLE, [])
                                        remote exchange (REPARTITION, HASH, [group_154, ss_list_price_41])
                                            partial aggregation over (group_154, ss_list_price_41)
                                                scan store_sales
            final aggregation over ()
                local exchange (GATHER, SINGLE, [])
                    remote exchange (GATHER, SINGLE, [])
                        partial aggregation over ()
                            final aggregation over (group_161, ss_list_price_70)
                                local exchange (GATHER, SINGLE, [])
                                    remote exchange (REPARTITION, HASH, [group_161, ss_list_price_70])
                                        partial aggregation over (group_161, ss_list_price_70)
                                            scan store_sales
        final aggregation over ()
            local exchange (GATHER, SINGLE, [])
                remote exchange (GATHER, SINGLE, [])
                    partial aggregation over ()
                        final aggregation over (group_168, ss_list_price_99)
                            local exchange (GATHER, SINGLE, [])
                                remote exchange (REPARTITION, HASH, [group_168, ss_list_price_99])
                                    partial aggregation over (group_168, ss_list_price_99)
                                        scan store_sales
    final aggregation over ()
        local exchange (GATHER, SINGLE, [])
            remote exchange (GATHER, SINGLE, [])
                partial aggregation over ()
                    final aggregation over (group_175, ss_list_price_128)
                        local exchange (GATHER, SINGLE, [])
                            remote exchange (REPARTITION, HASH, [group_175, ss_list_price_128])
                                partial aggregation over (group_175, ss_list_price_128)
                                    scan store_sales
