(
(let $1 (DataType 'String))
(let $2 '('"a" $1))
(let $3 '('"b" $1))
(let $4 '('"c" $1))
(let $5 (StructType $2 $3 $4))
(let $6 '('('"_logical_id" '7165) '('"_id" '"f3394fb7-54c0084a-302335ca-fba517da") '('"_wide_channels" $5)))
(let $7 (DqPhyStage '() (lambda '() (block '(
  (let $18 '@@["StructType";[["a";["DataType";"String"]];["b";["DataType";"String"]];["c";["DataType";"String"]];["d";["DataType";"String"]]]]@@)
  (let $19 (YqlRowSpec '('NativeYtTypeFlags '0) '('StrictSchema '1) '('UniqueKeys '0) '('Type $18)))
  (let $20 (YtMeta '('CanWrite '1) '('DoesExist '1) '('YqlCompatibleScheme '1) '('InferredScheme '0) '('IsDynamic '0) '('Attrs '('('"native_strict_schema" '"false")))))
  (let $21 (YtStat '('Id '"Input") '('RecordsCount '"4") '('DataSize '"140") '('ChunkCount '1) '('ModifyTime '0) '('Revision '0)))
  (let $22 (YtTable '"Input" $19 $20 $21 '() (Void) (Void) '"/Root/plato"))
  (let $23 '('"a" '"b" '"c"))
  (let $24 (YtReadTable! world (DataSource '"yt" '"/Root/plato") '((YtSection '((YtPath $22 $23 (Void) (Void))) '()))))
  (return (FromFlow (DqReadWideWrap $24 '())))
))) $6))
(let $8 (DqCnHashShuffle (TDqOutput $7 '0) '('1) '0 '"HashV2"))
(let $9 (OptionalType $1))
(let $10 (StructType $2 '('"min_a" $1) '('"prev_a" $9)))
(let $11 '('('"_logical_id" '8149) '('"_id" '"7818c639-caf6c3d0-d7113ae8-78813741") '('"_wide_channels" $10)))
(let $12 (DqPhyStage '($8) (lambda '($25) (block '(
  (let $26 (NarrowSqueezeToDict (ToFlow $25) (lambda '($31 $32 $33) $32) (lambda '($34 $35 $36) (AsStruct '('"a" $34) '('"b" $35) '('"c" $36))) '('Auto 'Many)))
  (let $27 (Bool 'true))
  (let $28 (Chopper (OrderedFlatMap $26 (lambda '($37) (OrderedFlatMap (DictPayloads $37) (lambda '($38) (Sort $38 $27 (lambda '($39) (Member $39 '"c"))))))) (lambda '($40) (Member $40 '"b")) (lambda '($41 $42) (AggrNotEquals $41 (Member $42 '"b"))) (lambda '($43 $44) (block '(
    (let $45 (FromFlow $44))
    (let $46 (Chain1Map $45 (lambda '($56) (block '(
      (let $57 (Member $56 '"a"))
      (let $58 '('Min0 $57))
      (let $59 (AsStruct $58 '('"a" $57) '('"b" (Member $56 '"b")) '('"c" (Member $56 '"c"))))
      (return '($59 (AsStruct $58)))
    ))) (lambda '($60 $61) (block '(
      (let $62 (Member $60 '"a"))
      (let $63 '('Min0 (AggrMin $62 (Member (Nth $61 '1) 'Min0))))
      (let $64 (AsStruct $63 '('"a" $62) '('"b" (Member $60 '"b")) '('"c" (Member $60 '"c"))))
      (return '($64 (AsStruct $63)))
    )))))
    (let $47 (StructType '('Min0 $1) $2 $3 $4))
    (let $48 (ListType $47))
    (let $49 (VariantType (StructType '('group $48) '('singleRow $47))))
    (let $50 (Condense1 $46 (lambda '($65) (block '(
      (let $66 (Nth $65 '0))
      (let $67 (Variant $66 'singleRow $49))
      (return '((Member $66 '"c") $67))
    ))) (lambda '($68 $69) (AggrNotEquals (Member (Nth $68 '0) '"c") (Nth $69 '0))) (lambda '($70 $71) (block '(
      (let $72 (Nth $70 '0))
      (let $73 (Visit (Nth $71 '1) 'group (lambda '($74) (Variant (Insert $74 $72) 'group $49)) 'singleRow (lambda '($75) (Variant (AsList $75 $72) 'group $49))))
      (return '((Nth $71 '0) $73))
    )))))
    (let $51 (QueueCreate $47 (Uint64 '"3") (Uint64 '1) (DependsOn $45)))
    (let $52 (Uint64 '0))
    (let $53 (lambda '($86) (Just (Member $86 '"a"))))
    (let $54 (Nothing $9))
    (let $55 (Chain1Map (ToFlow (PreserveStream (OrderedFlatMap $50 (lambda '($76) (Visit (Nth $76 '1) 'group (lambda '($77) (IfPresent (Last $77) (lambda '($78) (OrderedMap (Collect (Map $77 (lambda '($79) (AsStruct '('"a" (Member $79 '"a")) '('"b" (Member $79 '"b")) '('"c" (Member $79 '"c")))))) (lambda '($80) (AsStruct '('Min0 (Member $78 'Min0)) '('"a" (Member $80 '"a")) '('"b" (Member $80 '"b")) '('"c" (Member $80 '"c")))))) (List $48))) 'singleRow (lambda '($81) (AsList $81))))) $51 $52)) (lambda '($82) (block '(
      (let $83 (QueuePeek $51 $52 (DependsOn $82)))
      (let $84 (IfPresent $83 $53 $54))
      (let $85 (AsStruct '('Min0 (Member $82 'Min0)) '('_yql_Lag0 $84) '('"a" (Member $82 '"a")) '('"b" (Member $82 '"b")) '('"c" (Member $82 '"c"))))
      (return '($85 (AsStruct '('_yql_Lag0 (Void)))))
    ))) (lambda '($87 $88) (block '(
      (let $89 (QueuePeek $51 $52 (DependsOn $87)))
      (let $90 (IfPresent $89 $53 $54))
      (let $91 (AsStruct '('Min0 (Member $87 'Min0)) '('_yql_Lag0 $90) '('"a" (Member $87 '"a")) '('"b" (Member $87 '"b")) '('"c" (Member $87 '"c"))))
      (return '($91 (Nth $88 '1)))
    )))))
    (return (OrderedMap $55 (lambda '($92) (block '(
      (let $93 (Nth $92 '0))
      (return (AsStruct '('Min0 (Member $93 'Min0)) '('_yql_Lag0 (Member $93 '_yql_Lag0)) '('"a" (Member $93 '"a"))))
    )))))
  )))))
  (let $29 (Sort (Map $28 (lambda '($94) (AsStruct '('"a" (Member $94 '"a")) '('"min_a" (Member $94 'Min0)) '('"prev_a" (Member $94 '_yql_Lag0))))) $27 (lambda '($95) (Member $95 '"a"))))
  (let $30 (lambda '($96) (Member $96 '"a") (Member $96 '"min_a") (Member $96 '"prev_a")))
  (return (FromFlow (ExpandMap $29 $30)))
))) $11))
(let $13 (DqCnMerge (TDqOutput $12 '0) '('('0 '"Asc"))))
(let $14 (DqPhyStage '($13) (lambda '($97) (FromFlow (NarrowMap (ToFlow $97) (lambda '($98 $99 $100) (AsStruct '('"a" $98) '('"min_a" $99) '('"prev_a" $100)))))) '('('"_logical_id" '8161) '('"_id" '"1885c5a5-809bb22e-5f2db530-7e7f9672"))))
(let $15 '($7 $12 $14))
(let $16 '('"a" '"prev_a" '"min_a"))
(let $17 (DqCnResult (TDqOutput $14 '0) $16))
(return (KqpPhysicalQuery '((KqpPhysicalTx $15 '($17) '() '('('"type" '"generic")))) '((KqpTxResultBinding (ListType $10) '0 '0)) '('('"type" '"query"))))
)
