(
(let $1 '@@["StructType";[["user";["OptionalType";["DataType";"String"]]];["ts";["OptionalType";["DataType";"Int32"]]];["payload";["DataType";"Int32"]]]]@@)
(let $2 (YqlRowSpec '('NativeYtTypeFlags '0) '('StrictSchema '1) '('UniqueKeys '0) '('Type $1)))
(let $3 (YtMeta '('CanWrite '1) '('DoesExist '1) '('YqlCompatibleScheme '1) '('InferredScheme '0) '('IsDynamic '0) '('Attrs '('('"native_strict_schema" '"false")))))
(let $4 (YtStat '('Id '"Input") '('RecordsCount '"18") '('DataSize '"656") '('ChunkCount '1) '('ModifyTime '0) '('Revision '0)))
(let $5 (YtTable '"Input" $2 $3 $4 '() (Void) (Void) '"/Root/plato"))
(let $6 (YtReadTable! world (DataSource '"yt" '"/Root/plato") '((YtSection '((YtPath $5 '('"ts" '"user") (Void) (Void))) '()))))
(let $7 (DqReadWideWrap $6 '()))
(let $8 (OptionalType (DataType 'Int32)))
(let $9 '('"user" (OptionalType (DataType 'String))))
(let $10 '('"_wide_channels" (StructType '('"ts" $8) $9)))
(let $11 '('('"_logical_id" '4338) '('"_id" '"2c6905bb-870e5941-c0b891fa-eabf5a65") $10))
(let $12 (DqPhyStage '() (lambda '() (FromFlow $7)) $11))
(let $13 '('1))
(let $14 (DqCnHashShuffle (TDqOutput $12 '0) $13 '0 '"HashV2"))
(let $15 '('Auto 'Many))
(let $16 (Bool 'true))
(let $17 (lambda '($54) (OrderedFlatMap (DictPayloads $54) (lambda '($55) (Sort $55 $16 (lambda '($56) (Member $56 '"ts")))))))
(let $18 (Int32 '"10"))
(let $19 '"_yql_group_session_start")
(let $20 '($16 $16))
(let $21 (StructType '('session_start $8) $9))
(let $22 '('('"_logical_id" '4646) '('"_id" '"bd532a89-1fc78d9c-935c9854-b4ec2356") '('"_wide_channels" $21)))
(let $23 (DqPhyStage '($14) (lambda '($44) (block '(
  (let $45 (NarrowSqueezeToDict (ToFlow $44) (lambda '($50 $51) $51) (lambda '($52 $53) (AsStruct '('"ts" $52) '('"user" $53))) $15))
  (let $46 (Chain1Map (OrderedFlatMap $45 $17) (lambda '($57) (block '(
    (let $58 (Member $57 '"ts"))
    (return '($57 $58 $58 (Member $57 '"user")))
  ))) (lambda '($59 $60) (block '(
    (let $61 (Member $59 '"user"))
    (let $62 (Member $59 '"ts"))
    (let $63 '($59 $62 $62 $61))
    (let $64 (Nth $60 '2))
    (let $65 (If (Coalesce (< $64 $62) $16) (- $62 $64) (- $64 $62)))
    (let $66 (If (And (AggrNotEquals $62 $64) (Coalesce (< $18 $65) $16)) $62 (Nth $60 '1)))
    (let $67 '($59 $66 $62 $61))
    (return (If (AggrNotEquals $61 (Member (Nth $60 '0) '"user")) $63 $67))
  )))))
  (let $47 (Condense1 $46 (lambda '($68) (AsStruct '($19 (Nth $68 '1)) '('"user" (Member (Nth $68 '0) '"user")))) (lambda '($69 $70) (Or (AggrNotEquals (Member (Nth $69 '0) '"user") (Member $70 '"user")) (AggrNotEquals (Nth $69 '1) (Member $70 $19)))) (lambda '($71 $72) $72)))
  (let $48 (Sort (Map $47 (lambda '($73) (AsStruct '('session_start (Member $73 $19)) '('"user" (Member $73 '"user"))))) $20 (lambda '($74) '((Member $74 '"user") (Member $74 'session_start)))))
  (let $49 (lambda '($75) (Member $75 'session_start) (Member $75 '"user")))
  (return (FromFlow (ExpandMap $48 $49)))
))) $22))
(let $24 '('('1 '"Asc") '('0 '"Asc")))
(let $25 (DqCnMerge (TDqOutput $23 '0) $24))
(let $26 (DqPhyStage '($25) (lambda '($76) (FromFlow (NarrowMap (ToFlow $76) (lambda '($77 $78) (AsStruct '('session_start $77) '('"user" $78)))))) '('('"_logical_id" '4658) '('"_id" '"4e3f83b4-84d8323d-3bb60e70-489df0a1"))))
(let $27 '($12 $23 $26))
(let $28 (DqCnResult (TDqOutput $26 '0) '('"user" 'session_start)))
(let $29 '('('"type" '"generic")))
(let $30 (KqpPhysicalTx $27 '($28) '() $29))
(let $31 '('('"_logical_id" '4699) '('"_id" '"997b6f5-66d7f0d-21166fd8-f646b1a7") $10))
(let $32 (DqPhyStage '() (lambda '() (FromFlow $7)) $31))
(let $33 (DqCnHashShuffle (TDqOutput $32 '0) $13 '0 '"HashV2"))
(let $34 (StructType '('group0 $8) $9))
(let $35 '('('"_logical_id" '5007) '('"_id" '"6993e5e5-fed001e7-7029192a-e7bc7b4c") '('"_wide_channels" $34)))
(let $36 (DqPhyStage '($33) (lambda '($79) (block '(
  (let $80 (NarrowSqueezeToDict (ToFlow $79) (lambda '($85 $86) $86) (lambda '($87 $88) (AsStruct '('"ts" $87) '('"user" $88))) $15))
  (let $81 (Chain1Map (OrderedFlatMap $80 $17) (lambda '($89) (block '(
    (let $90 (Member $89 '"ts"))
    (return '($89 $90 $90 (Member $89 '"user")))
  ))) (lambda '($91 $92) (block '(
    (let $93 (Member $91 '"user"))
    (let $94 (Member $91 '"ts"))
    (let $95 '($91 $94 $94 $93))
    (let $96 (Nth $92 '2))
    (let $97 (If (Coalesce (< $96 $94) $16) (- $94 $96) (- $96 $94)))
    (let $98 (If (And (AggrNotEquals $94 $96) (Coalesce (< $18 $97) $16)) $94 (Nth $92 '1)))
    (let $99 '($91 $98 $94 $93))
    (return (If (AggrNotEquals $93 (Member (Nth $92 '0) '"user")) $95 $99))
  )))))
  (let $82 (Condense1 $81 (lambda '($100) (AsStruct '($19 (Nth $100 '1)) '('"user" (Member (Nth $100 '0) '"user")))) (lambda '($101 $102) (Or (AggrNotEquals (Member (Nth $101 '0) '"user") (Member $102 '"user")) (AggrNotEquals (Nth $101 '1) (Member $102 $19)))) (lambda '($103 $104) $104)))
  (let $83 (Sort (Map $82 (lambda '($105) (AsStruct '('group0 (Member $105 $19)) '('"user" (Member $105 '"user"))))) $20 (lambda '($106) '((Member $106 '"user") (Member $106 'group0)))))
  (let $84 (lambda '($107) (Member $107 'group0) (Member $107 '"user")))
  (return (FromFlow (ExpandMap $83 $84)))
))) $35))
(let $37 (DqCnMerge (TDqOutput $36 '0) $24))
(let $38 (DqPhyStage '($37) (lambda '($108) (FromFlow (NarrowMap (ToFlow $108) (lambda '($109 $110) (AsStruct '('group0 $109) '('"user" $110)))))) '('('"_logical_id" '5019) '('"_id" '"9a8d905e-b07bb6c8-86d6980c-5e17535f"))))
(let $39 '($32 $36 $38))
(let $40 (DqCnResult (TDqOutput $38 '0) '('"user" 'group0)))
(let $41 (KqpPhysicalTx $39 '($40) '() $29))
(let $42 (KqpTxResultBinding (ListType $21) '0 '0))
(let $43 (KqpTxResultBinding (ListType $34) '1 '0))
(return (KqpPhysicalQuery '($30 $41) '($42 $43) '('('"type" '"query"))))
)
