(
(let $1 (OptionalType (DataType 'Uint32)))
(let $2 (Uint64 '1))
(let $3 (DataType 'Double))
(let $4 (DataType 'Uint64))
(let $5 (OptionalType (TupleType $3 $4)))
(let $6 (OptionalType $4))
(let $7 (DataType 'String))
(let $8 (ListType $7))
(let $9 '('prefix $7))
(let $10 '('"region" $1))
(let $11 (StructType '('_yql_agg_0 $8) '('_yql_agg_1 $5) '('_yql_agg_2 $6) $9 $10))
(let $12 '('('"_logical_id" '15647) '('"_id" '"bd1c6112-38299a61-6112d955-1a88deca") '('"_wide_channels" $11)))
(let $13 (DqPhyStage '() (lambda '() (block '(
  (let $36 '@@["StructType";[["key";["DataType";"String"]];["subkey";["DataType";"String"]];["value";["DataType";"String"]]]]@@)
  (let $37 (YqlRowSpec '('NativeYtTypeFlags '0) '('StrictSchema '1) '('UniqueKeys '0) '('Type $36)))
  (let $38 (YtMeta '('CanWrite '1) '('DoesExist '1) '('YqlCompatibleScheme '1) '('InferredScheme '0) '('IsDynamic '0) '('Attrs '('('"native_strict_schema" 'false)))))
  (let $39 (YtStat '('Id '"Input") '('RecordsCount '"12") '('DataSize '"525") '('ChunkCount '1) '('ModifyTime '0) '('Revision '0)))
  (let $40 (YtTable '"Input" $37 $38 $39 '() (Void) (Void) '"/Root/plato"))
  (let $41 '('"key" '"subkey" '"value"))
  (let $42 (YtReadTable! world (DataSource '"yt" '"/Root/plato") '((YtSection '((YtPath $40 $41 (Void) (Void))) '()))))
  (let $43 (lambda '($51 $52 $53) (block '(
    (let $54 (Substring $53 (Uint32 '0) (Uint32 '1)))
    (return $54 (SafeCast $52 $1))
  ))))
  (let $44 (lambda '($63) (Just '((Convert $63 'Double) $2))))
  (let $45 (Nothing $5))
  (let $46 (lambda '($64) (Just (SafeCast $64 $4))))
  (let $47 (Nothing $6))
  (let $48 (lambda '($55 $56 $57 $58 $59) (block '(
    (let $60 (SafeCast $57 $1))
    (let $61 (IfPresent $60 $44 $45))
    (let $62 (IfPresent $60 $46 $47))
    (return (AsList $59) $61 $62)
  ))))
  (let $49 (lambda '($65 $66 $67 $68 $69 $70 $71 $72) (block '(
    (let $73 (SafeCast $67 $1))
    (let $74 (IfPresent $73 $44 $45))
    (let $75 (IfPresent $71 (lambda '($77) (IfPresent $73 (lambda '($78) (Just '((AggrAdd (Nth $77 '0) (Convert $78 'Double)) (Inc (Nth $77 '1))))) (Just $77))) $74))
    (let $76 (IfPresent $73 $46 $47))
    (return (Insert $70 $69) $75 (AggrAdd $76 $72))
  ))))
  (let $50 (lambda '($79 $80 $81 $82 $83) $81 $82 $83 $79 $80))
  (return (WideFromBlocks (DqPhyHashCombine (WideToBlocks (FromFlow (DqReadWideWrap $42 '()))) '-1073741824 $43 $48 $49 $50)))
))) $12))
(let $14 (DqCnHashShuffle (TDqOutput $13 '0) '('"3" '"4") '0 '"HashV2"))
(let $15 (OptionalType $3))
(let $16 '('AggregateList1 $8))
(let $17 '('Avg0 $15))
(let $18 '('Avg1 $15))
(let $19 '('Avg2 $15))
(let $20 '('Sum0 $6))
(let $21 (StructType $16 $17 $18 $19 $20 $9 $10))
(let $22 '('('"_logical_id" '19639) '('"_id" '"431e7db-e44a9fe7-9c161df9-ec541efa") '('"_partition_mode" '"aggregate") '('"_wide_channels" $21)))
(let $23 (DqPhyStage '($14) (lambda '($84) (block '(
  (let $85 (lambda '($91 $92 $93 $94 $95) $94 $95))
  (let $86 (lambda '($96 $97 $98 $99 $100 $101 $102) $98 $99 $100))
  (let $87 (lambda '($103 $104 $105 $106 $107 $108 $109 $110 $111 $112) (block '(
    (let $113 (IfPresent $106 (lambda '($114) (IfPresent $111 (lambda '($115) (Just '((AggrAdd (Nth $114 '0) (Nth $115 '0)) (AggrAdd (Nth $114 '1) (Nth $115 '1))))) $106)) $111))
    (return (Extend $105 $110) $113 (AggrAdd $107 $112))
  ))))
  (let $88 (lambda '($116 $117 $118 $119 $120) (block '(
    (let $121 (IfPresent $119 (lambda '($122) (Just (Div (Nth $122 '0) (Nth $122 '1)))) (Nothing $15)))
    (return $118 $121 $120 $116 $117)
  ))))
  (let $89 (WideCombiner (ToFlow $84) '"" $85 $86 $87 $88))
  (let $90 (lambda '($123 $124 $125 $126 $127) $123 $124 $124 $124 $125 $126 $127))
  (return (FromFlow (WideMap $89 $90)))
))) $22))
(let $24 (DqCnHashShuffle (TDqOutput $23 '0) '('"6") '0 '"HashV2"))
(let $25 (OptionalType $7))
(let $26 (OptionalType $8))
(let $27 (StructType '('"avg_age" $15) '('"column10" $7) $9 '('"prefix_list" $8) '('"prev_prefix_list" $25) '('"prev_region" $1) '('"prev_region_list" $26) $10 '('"region_2" (OptionalType (DataType 'Int32))) '('"sum_age" $6) '('"sum_by_avg_age" $15)))
(let $28 '('('"_logical_id" '21200) '('"_id" '"44744c3-b6e7814a-61fc9b0c-b23d0f46") '('"_wide_channels" $27)))
(let $29 (DqPhyStage '($24) (lambda '($128) (block '(
  (let $129 (NarrowSqueezeToDict (ToFlow $128) (lambda '($136 $137 $138 $139 $140 $141 $142) $142) (lambda '($143 $144 $145 $146 $147 $148 $149) (AsStruct '('AggregateList1 $143) '('Avg0 $144) '('Avg1 $145) '('Avg2 $146) '('Sum0 $147) '('prefix $148) '('"region" $149))) '('Auto 'Many)))
  (let $130 (Bool 'false))
  (let $131 (Bool 'true))
  (let $132 (Chopper (OrderedFlatMap $129 (lambda '($150) (OrderedFlatMap (DictPayloads $150) (lambda '($151) (Sort $151 '($130 $131) (lambda '($152) '((Member $152 'Avg2) (Member $152 'prefix)))))))) (lambda '($153) (Member $153 '"region")) (lambda '($154 $155) (AggrNotEquals $154 (Member $155 '"region"))) (lambda '($156 $157) (block '(
    (let $158 (FromFlow $157))
    (let $159 (Chain1Map $158 (lambda '($173) (block '(
      (let $174 (Member $173 'prefix))
      (let $175 '('AggregateList0 (AsList $174)))
      (let $176 (Member $173 'Avg1))
      (let $177 '('Sum1 $176))
      (let $178 (AsStruct $175 '('AggregateList1 (Member $173 'AggregateList1)) '('Avg0 (Member $173 'Avg0)) '('Avg1 $176) '('Avg2 (Member $173 'Avg2)) '('Sum0 (Member $173 'Sum0)) $177 '('prefix $174) '('"region" (Member $173 '"region"))))
      (return '($178 (AsStruct $175 $177)))
    ))) (lambda '($179 $180) (block '(
      (let $181 (Nth $180 '1))
      (let $182 (Member $179 'prefix))
      (let $183 '('AggregateList0 (Insert (Member $181 'AggregateList0) $182)))
      (let $184 (Member $179 'Avg1))
      (let $185 '('Sum1 (AggrAdd $184 (Member $181 'Sum1))))
      (let $186 (AsStruct $183 '('AggregateList1 (Member $179 'AggregateList1)) '('Avg0 (Member $179 'Avg0)) '('Avg1 $184) '('Avg2 (Member $179 'Avg2)) '('Sum0 (Member $179 'Sum0)) $185 '('prefix $182) '('"region" (Member $179 '"region"))))
      (return '($186 (AsStruct $183 $185)))
    )))))
    (let $160 (StructType '('AggregateList0 $8) $16 $17 $18 $19 $20 '('Sum1 $15) $9 $10))
    (let $161 (ListType $160))
    (let $162 (VariantType (StructType '('group $161) '('singleRow $160))))
    (let $163 (Condense1 $159 (lambda '($187) (block '(
      (let $188 (Nth $187 '0))
      (let $189 (Variant $188 'singleRow $162))
      (return '('((Member $188 'Avg2) (Member $188 'prefix)) $189))
    ))) (lambda '($190 $191) (block '(
      (let $192 (Nth $190 '0))
      (let $193 (Nth $191 '0))
      (return (Or (AggrNotEquals (Member $192 'Avg2) (Nth $193 '0)) (AggrNotEquals (Member $192 'prefix) (Nth $193 '1))))
    ))) (lambda '($194 $195) (block '(
      (let $196 (Nth $194 '0))
      (let $197 (Visit (Nth $195 '1) 'group (lambda '($198) (Variant (Insert $198 $196) 'group $162)) 'singleRow (lambda '($199) (Variant (AsList $199 $196) 'group $162))))
      (return '((Nth $195 '0) $197))
    )))))
    (let $164 (QueueCreate $160 (Uint64 '"3") $2 (DependsOn $158)))
    (let $165 (Uint64 '0))
    (let $166 (lambda '($213) (Member $213 '"region")))
    (let $167 (Nothing $1))
    (let $168 (lambda '($214) (Just (Member $214 'prefix))))
    (let $169 (Nothing $25))
    (let $170 (lambda '($215) (Just (Member $215 'AggregateList1))))
    (let $171 (Nothing $26))
    (let $172 (Chain1Map (ToFlow (PreserveStream (OrderedFlatMap $163 (lambda '($200) (Visit (Nth $200 '1) 'group (lambda '($201) (IfPresent (Last $201) (lambda '($202) (OrderedMap (Collect (Map $201 (lambda '($203) (AsStruct '('AggregateList1 (Member $203 'AggregateList1)) '('Avg0 (Member $203 'Avg0)) '('Avg1 (Member $203 'Avg1)) '('Avg2 (Member $203 'Avg2)) '('Sum0 (Member $203 'Sum0)) '('prefix (Member $203 'prefix)) '('"region" (Member $203 '"region")))))) (lambda '($204) (AsStruct '('AggregateList0 (Member $202 'AggregateList0)) '('AggregateList1 (Member $204 'AggregateList1)) '('Avg0 (Member $204 'Avg0)) '('Avg1 (Member $204 'Avg1)) '('Avg2 (Member $204 'Avg2)) '('Sum0 (Member $204 'Sum0)) '('Sum1 (Member $202 'Sum1)) '('prefix (Member $204 'prefix)) '('"region" (Member $204 '"region")))))) (List $161))) 'singleRow (lambda '($205) (AsList $205))))) $164 $165)) (lambda '($206) (block '(
      (let $207 (QueuePeek $164 $165 (DependsOn $206)))
      (let $208 (IfPresent $207 $166 $167))
      (let $209 (IfPresent $207 $168 $169))
      (let $210 (IfPresent $207 $170 $171))
      (let $211 (AsStruct '('AggregateList0 (Member $206 'AggregateList0)) '('AggregateList1 (Member $206 'AggregateList1)) '('Avg0 (Member $206 'Avg0)) '('Avg1 (Member $206 'Avg1)) '('Avg2 (Member $206 'Avg2)) '('Sum0 (Member $206 'Sum0)) '('Sum1 (Member $206 'Sum1)) '('_yql_Lag0 $208) '('_yql_Lag1 $209) '('_yql_Lag2 $210) '('prefix (Member $206 'prefix)) '('"region" (Member $206 '"region"))))
      (let $212 (AsStruct '('_yql_Lag0 (Void)) '('_yql_Lag1 (Void)) '('_yql_Lag2 (Void))))
      (return '($211 $212))
    ))) (lambda '($216 $217) (block '(
      (let $218 (QueuePeek $164 $165 (DependsOn $216)))
      (let $219 (IfPresent $218 $166 $167))
      (let $220 (IfPresent $218 $168 $169))
      (let $221 (IfPresent $218 $170 $171))
      (let $222 (AsStruct '('AggregateList0 (Member $216 'AggregateList0)) '('AggregateList1 (Member $216 'AggregateList1)) '('Avg0 (Member $216 'Avg0)) '('Avg1 (Member $216 'Avg1)) '('Avg2 (Member $216 'Avg2)) '('Sum0 (Member $216 'Sum0)) '('Sum1 (Member $216 'Sum1)) '('_yql_Lag0 $219) '('_yql_Lag1 $220) '('_yql_Lag2 $221) '('prefix (Member $216 'prefix)) '('"region" (Member $216 '"region"))))
      (return '($222 (Nth $217 '1)))
    )))))
    (return (OrderedMap $172 (lambda '($223) (block '(
      (let $224 (Nth $223 '0))
      (return (AsStruct '('AggregateList0 (Member $224 'AggregateList0)) '('Avg0 (Member $224 'Avg0)) '('Sum0 (Member $224 'Sum0)) '('Sum1 (Member $224 'Sum1)) '('_yql_Lag0 (Member $224 '_yql_Lag0)) '('_yql_Lag1 (Member $224 '_yql_Lag1)) '('_yql_Lag2 (Member $224 '_yql_Lag2)) '('prefix (Member $224 'prefix)) '('"region" (Member $224 '"region"))))
    )))))
  )))))
  (let $133 '($131 $130 $131))
  (let $134 (Sort (Map $132 (lambda '($225) (block '(
    (let $226 (Member $225 '"region"))
    (return (AsStruct '('"avg_age" (Member $225 'Avg0)) '('"column10" (String '"test")) '('prefix (Member $225 'prefix)) '('"prefix_list" (Member $225 'AggregateList0)) '('"prev_prefix_list" (Member $225 '_yql_Lag1)) '('"prev_region" (Member $225 '_yql_Lag0)) '('"prev_region_list" (Member $225 '_yql_Lag2)) '('"region" $226) '('"region_2" (+ $226 (Int32 '"2"))) '('"sum_age" (Member $225 'Sum0)) '('"sum_by_avg_age" (Member $225 'Sum1))))
  )))) $133 (lambda '($227) '((Member $227 '"region") (Member $227 '"avg_age") (Member $227 'prefix)))))
  (let $135 (lambda '($228) (Member $228 '"avg_age") (Member $228 '"column10") (Member $228 'prefix) (Member $228 '"prefix_list") (Member $228 '"prev_prefix_list") (Member $228 '"prev_region") (Member $228 '"prev_region_list") (Member $228 '"region") (Member $228 '"region_2") (Member $228 '"sum_age") (Member $228 '"sum_by_avg_age")))
  (return (FromFlow (ExpandMap $134 $135)))
))) $28))
(let $30 '('('"7" '"Asc") '('0 '"Desc") '('"2" '"Asc")))
(let $31 (DqCnMerge (TDqOutput $29 '0) $30))
(let $32 (DqPhyStage '($31) (lambda '($229) (FromFlow (NarrowMap (ToFlow $229) (lambda '($230 $231 $232 $233 $234 $235 $236 $237 $238 $239 $240) (AsStruct '('"avg_age" $230) '('"column10" $231) '('prefix $232) '('"prefix_list" $233) '('"prev_prefix_list" $234) '('"prev_region" $235) '('"prev_region_list" $236) '('"region" $237) '('"region_2" $238) '('"sum_age" $239) '('"sum_by_avg_age" $240)))))) '('('"_logical_id" '21212) '('"_id" '"ef9d726a-e401f8b-15fac139-e9aff1e4"))))
(let $33 '($13 $23 $29 $32))
(let $34 '('prefix '"region" '"region_2" '"avg_age" '"sum_age" '"sum_by_avg_age" '"prev_region" '"prefix_list" '"prev_prefix_list" '"prev_region_list" '"column10"))
(let $35 (DqCnResult (TDqOutput $32 '0) $34))
(return (KqpPhysicalQuery '((KqpPhysicalTx $33 '($35) '() '('('"type" '"generic")))) '((KqpTxResultBinding (ListType $27) '0 '0)) '('('"type" '"query"))))
)
