(
(let $1 (OptionalType (DataType 'Uint32)))
(let $2 '('"key" $1))
(let $3 '('"subkey" $1))
(let $4 '('('"_logical_id" '12815) '('"_id" '"515fec29-4c2efc11-818cc88f-6b7e2892") '('"_wide_channels" (StructType $2 $3))))
(let $5 (DqPhyStage '() (lambda '() (block '(
  (let $30 '@@["StructType";[["key";["DataType";"String"]];["subkey";["DataType";"String"]];["value";["DataType";"String"]]]]@@)
  (let $31 (YqlRowSpec '('NativeYtTypeFlags '0) '('StrictSchema '1) '('UniqueKeys '0) '('Type $30)))
  (let $32 (YtMeta '('CanWrite '1) '('DoesExist '1) '('YqlCompatibleScheme '1) '('InferredScheme '0) '('IsDynamic '0) '('Attrs '('('"native_strict_schema" '"false")))))
  (let $33 (YtStat '('Id '"Input") '('RecordsCount '"12") '('DataSize '"525") '('ChunkCount '1) '('ModifyTime '0) '('Revision '0)))
  (let $34 (YtTable '"Input" $31 $32 $33 '() (Void) (Void) '"/Root/plato"))
  (let $35 (YtReadTable! world (DataSource '"yt" '"/Root/plato") '((YtSection '((YtPath $34 '('"key" '"subkey") (Void) (Void))) '()))))
  (let $36 (lambda '($37 $38) (SafeCast $37 $1) (SafeCast $38 $1)))
  (return (FromFlow (WideMap (DqReadWideWrap $35 '()) $36)))
))) $4))
(let $6 (DqCnHashShuffle (TDqOutput $5 '0) '('1) '0 '"HashV2"))
(let $7 '('Auto 'Many))
(let $8 (Bool 'true))
(let $9 (DataType 'Uint64))
(let $10 (lambda '($73) (Just (SafeCast $73 $9))))
(let $11 (OptionalType $9))
(let $12 (Nothing $11))
(let $13 '('Count0 $9))
(let $14 '('Max0 $1))
(let $15 '('Min0 $1))
(let $16 '('Sum1 $11))
(let $17 (StructType $13 $14 $15 $16 $2 $3))
(let $18 '('('"_logical_id" '12887) '('"_id" '"5937221f-3c350e66-671895f6-8d11c0a8") '('"_partition_mode" '"aggregate") '('"_wide_channels" $17)))
(let $19 (DqPhyStage '($6) (lambda '($39) (block '(
  (let $40 (NarrowSqueezeToDict (ToFlow $39) (lambda '($44 $45) $45) (lambda '($46 $47) (AsStruct '('"key" $46) '('"subkey" $47))) $7))
  (let $41 (Int32 '"3"))
  (let $42 (Chopper (OrderedFlatMap $40 (lambda '($48) (OrderedFlatMap (DictPayloads $48) (lambda '($49) (block '(
    (let $50 (Sort (OrderedMap $49 (lambda '($51) (block '(
      (let $52 (Member $51 '"key"))
      (return (AsStruct '('_yql_sys_order_by_0 (% $52 $41)) '('"key" $52) '('"subkey" (Member $51 '"subkey"))))
    )))) '($8 $8) (lambda '($53) '((Member $53 '_yql_sys_order_by_0) (Member $53 '"key")))))
    (return (OrderedMap $50 (lambda '($54) (AsStruct '('"key" (Member $54 '"key")) '('"subkey" (Member $54 '"subkey"))))))
  )))))) (lambda '($55) (Member $55 '"subkey")) (lambda '($56 $57) (AggrNotEquals $56 (Member $57 '"subkey"))) (lambda '($58 $59) (block '(
    (let $60 (Chain1Map $59 (lambda '($64) (block '(
      (let $65 (Member $64 '"key"))
      (let $66 '('Count0 (AggrCountInit $65)))
      (let $67 '('Max0 $65))
      (let $68 '('Min0 $65))
      (let $69 (IfPresent $65 $10 $12))
      (let $70 '('Sum1 $69))
      (let $71 (AsStruct $66 $67 $68 $70 '('"key" $65) '('"subkey" (Member $64 '"subkey"))))
      (let $72 (AsStruct $66 $67 $68 $70))
      (return '($71 $72))
    ))) (lambda '($74 $75) (block '(
      (let $76 (Member $74 '"key"))
      (let $77 (Nth $75 '1))
      (let $78 '('Count0 (AggrCountUpdate $76 (Member $77 'Count0))))
      (let $79 '('Max0 (AggrMax $76 (Member $77 'Max0))))
      (let $80 '('Min0 (AggrMin $76 (Member $77 'Min0))))
      (let $81 (IfPresent $76 $10 $12))
      (let $82 '('Sum1 (AggrAdd $81 (Member $77 'Sum1))))
      (let $83 (AsStruct $78 $79 $80 $82 '('"key" $76) '('"subkey" (Member $74 '"subkey"))))
      (let $84 (AsStruct $78 $79 $80 $82))
      (return '($83 $84))
    )))))
    (let $61 (ListType $17))
    (let $62 (VariantType (StructType '('group $61) '('singleRow $17))))
    (let $63 (Condense1 $60 (lambda '($85) (block '(
      (let $86 (Nth $85 '0))
      (let $87 (Member $86 '"key"))
      (let $88 (Variant $86 'singleRow $62))
      (return '('((% $87 $41) $87) $88))
    ))) (lambda '($89 $90) (block '(
      (let $91 (Member (Nth $89 '0) '"key"))
      (let $92 (Nth $90 '0))
      (return (Or (AggrNotEquals (% $91 $41) (Nth $92 '0)) (AggrNotEquals $91 (Nth $92 '1))))
    ))) (lambda '($93 $94) (block '(
      (let $95 (Nth $93 '0))
      (let $96 (Visit (Nth $94 '1) 'group (lambda '($97) (Variant (Insert $97 $95) 'group $62)) 'singleRow (lambda '($98) (Variant (AsList $98 $95) 'group $62))))
      (return '((Nth $94 '0) $96))
    )))))
    (return (OrderedFlatMap $63 (lambda '($99) (Visit (Nth $99 '1) 'group (lambda '($100) (IfPresent (Last $100) (lambda '($101) (OrderedMap (Collect (Map $100 (lambda '($102) (AsStruct '('"key" (Member $102 '"key")) '('"subkey" (Member $102 '"subkey")))))) (lambda '($103) (AsStruct '('Count0 (Member $101 'Count0)) '('Max0 (Member $101 'Max0)) '('Min0 (Member $101 'Min0)) '('Sum1 (Member $101 'Sum1)) '('"key" (Member $103 '"key")) '('"subkey" (Member $103 '"subkey")))))) (List $61))) 'singleRow (lambda '($104) (AsList $104))))))
  )))))
  (let $43 (lambda '($105) (Member $105 'Count0) (Member $105 'Max0) (Member $105 'Min0) (Member $105 'Sum1) (Member $105 '"key") (Member $105 '"subkey")))
  (return (FromFlow (ExpandMap $42 $43)))
))) $18))
(let $20 (DqCnHashShuffle (TDqOutput $19 '0) '('"4") '0 '"HashV2"))
(let $21 (StructType '('"c" $9) '('"dbl_sum" $11) '('"maxk" $1) '('"mink" $1) $3 '('"x" $11)))
(let $22 '('('"_logical_id" '13758) '('"_id" '"1f755dad-3f839439-ed715766-177a79a0") '('"_wide_channels" $21)))
(let $23 (DqPhyStage '($20) (lambda '($106) (block '(
  (let $107 (NarrowSqueezeToDict (ToFlow $106) (lambda '($112 $113 $114 $115 $116 $117) $116) (lambda '($118 $119 $120 $121 $122 $123) (AsStruct '('Count0 $118) '('Max0 $119) '('Min0 $120) '('Sum1 $121) '('"key" $122) '('"subkey" $123))) $7))
  (let $108 (Chopper (OrderedFlatMap $107 (lambda '($124) (OrderedFlatMap (DictPayloads $124) (lambda '($125) (Sort $125 $8 (lambda '($126) (Member $126 '"subkey"))))))) (lambda '($127) (Member $127 '"key")) (lambda '($128 $129) (AggrNotEquals $128 (Member $129 '"key"))) (lambda '($130 $131) (block '(
    (let $132 (Chain1Map $131 (lambda '($137) (block '(
      (let $138 (Member $137 '"subkey"))
      (let $139 (IfPresent $138 $10 $12))
      (let $140 '('Sum0 $139))
      (let $141 (AsStruct '('Count0 (Member $137 'Count0)) '('Max0 (Member $137 'Max0)) '('Min0 (Member $137 'Min0)) $140 '('Sum1 (Member $137 'Sum1)) '('"key" (Member $137 '"key")) '('"subkey" $138)))
      (return '($141 (AsStruct $140)))
    ))) (lambda '($142 $143) (block '(
      (let $144 (Member $142 '"subkey"))
      (let $145 (IfPresent $144 $10 $12))
      (let $146 '('Sum0 (AggrAdd $145 (Member (Nth $143 '1) 'Sum0))))
      (let $147 (AsStruct '('Count0 (Member $142 'Count0)) '('Max0 (Member $142 'Max0)) '('Min0 (Member $142 'Min0)) $146 '('Sum1 (Member $142 'Sum1)) '('"key" (Member $142 '"key")) '('"subkey" $144)))
      (return '($147 (AsStruct $146)))
    )))))
    (let $133 (StructType $13 $14 $15 '('Sum0 $11) $16 $2 $3))
    (let $134 (ListType $133))
    (let $135 (VariantType (StructType '('group $134) '('singleRow $133))))
    (let $136 (Condense1 $132 (lambda '($148) (block '(
      (let $149 (Nth $148 '0))
      (let $150 (Variant $149 'singleRow $135))
      (return '((Member $149 '"subkey") $150))
    ))) (lambda '($151 $152) (AggrNotEquals (Member (Nth $151 '0) '"subkey") (Nth $152 '0))) (lambda '($153 $154) (block '(
      (let $155 (Nth $153 '0))
      (let $156 (Visit (Nth $154 '1) 'group (lambda '($157) (Variant (Insert $157 $155) 'group $135)) 'singleRow (lambda '($158) (Variant (AsList $158 $155) 'group $135))))
      (return '((Nth $154 '0) $156))
    )))))
    (return (OrderedFlatMap $136 (lambda '($159) (block '(
      (let $160 (Visit (Nth $159 '1) 'group (lambda '($161) (IfPresent (Last $161) (lambda '($162) (OrderedMap (Collect (Map $161 (lambda '($163) (AsStruct '('Count0 (Member $163 'Count0)) '('Max0 (Member $163 'Max0)) '('Min0 (Member $163 'Min0)) '('Sum1 (Member $163 'Sum1)) '('"key" (Member $163 '"key")) '('"subkey" (Member $163 '"subkey")))))) (lambda '($164) (AsStruct '('Count0 (Member $164 'Count0)) '('Max0 (Member $164 'Max0)) '('Min0 (Member $164 'Min0)) '('Sum0 (Member $162 'Sum0)) '('Sum1 (Member $164 'Sum1)) '('"key" (Member $164 '"key")) '('"subkey" (Member $164 '"subkey")))))) (List $134))) 'singleRow (lambda '($165) (AsList $165))))
      (return (Map $160 (lambda '($166) (AsStruct '('Count0 (Member $166 'Count0)) '('Max0 (Member $166 'Max0)) '('Min0 (Member $166 'Min0)) '('Sum0 (Member $166 'Sum0)) '('Sum1 (Member $166 'Sum1)) '('"subkey" (Member $166 '"subkey"))))))
    )))))
  )))))
  (let $109 '($8 $8 $8))
  (let $110 (Sort (Map $108 (lambda '($167) (AsStruct '('"c" (Member $167 'Count0)) '('"dbl_sum" (* (Int32 '"2") (Member $167 'Sum1))) '('"maxk" (Member $167 'Max0)) '('"mink" (Member $167 'Min0)) '('"subkey" (Member $167 '"subkey")) '('"x" (Member $167 'Sum0))))) $109 (lambda '($168) '((Member $168 '"subkey") (Member $168 '"x") (Member $168 '"dbl_sum")))))
  (let $111 (lambda '($169) (Member $169 '"c") (Member $169 '"dbl_sum") (Member $169 '"maxk") (Member $169 '"mink") (Member $169 '"subkey") (Member $169 '"x")))
  (return (FromFlow (ExpandMap $110 $111)))
))) $22))
(let $24 '('('"4" '"Asc") '('"5" '"Asc") '('1 '"Asc")))
(let $25 (DqCnMerge (TDqOutput $23 '0) $24))
(let $26 (DqPhyStage '($25) (lambda '($170) (FromFlow (NarrowMap (ToFlow $170) (lambda '($171 $172 $173 $174 $175 $176) (AsStruct '('"c" $171) '('"dbl_sum" $172) '('"maxk" $173) '('"mink" $174) '('"subkey" $175) '('"x" $176)))))) '('('"_logical_id" '13770) '('"_id" '"a7962efe-ad9d9233-8c1bdb5b-5ff19f9f"))))
(let $27 '($5 $19 $23 $26))
(let $28 '('"subkey" '"x" '"dbl_sum" '"c" '"mink" '"maxk"))
(let $29 (DqCnResult (TDqOutput $26 '0) $28))
(return (KqpPhysicalQuery '((KqpPhysicalTx $27 '($29) '() '('('"type" '"generic")))) '((KqpTxResultBinding (ListType $21) '0 '0)) '('('"type" '"query"))))
)
