aboutsummaryrefslogtreecommitdiffstats
path: root/yql/essentials/tests/sql/suites/match_recognize/simple_paritioning-streaming.sql
blob: 460af6b5dac5884e87b06350d49c8cb1d9ed0ca8 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
pragma FeatureR010="prototype";
pragma config.flags("MatchRecognizeStream", "force");
USE plato;

$data = [
<|dt:15, host:"fqdn1", key:0|>,
<|dt:16, host:"fqdn1", key:1|>,
<|dt:17, host:"fqdn1", key:2|>,
<|dt:18, host:"fqdn1", key:3|>,
<|dt:19, host:"fqdn1", key:4|>,
<|dt:20, host:"fqdn1", key:5|>,
<|dt:21, host:"fqdn1", key:6|>,
<|dt:22, host:"fqdn1", key:7|>,
<|dt:23, host:"fqdn_2", key:0|>,
<|dt:24, host:"fqdn1", key:8|>,
<|dt:25, host:"fqdn1", key:9|>,
<|dt:26, host:"fqdn1", key:10|>,
<|dt:27, host:"fqdn__3", key:30|>,
<|dt:28, host:"fqdn__3", key:1|>,
<|dt:29, host:"fqdn__3", key:2|>,
<|dt:30, host:"fqdn__3", key:3|>,
<|dt:31, host:"fqdn__3", key:4|>,
<|dt:32, host:"fqdn1", key:11|>,
<|dt:33, host:"fqdn1", key:12|>,
<|dt:34, host:"fqdn1", key:13|>,
<|dt:35, host:"fqdn1", key:14|>,
<|dt:36, host:"fqdn__3", key:15|>
];

select * from AS_TABLE($data) MATCH_RECOGNIZE(
    PARTITION BY host
    ORDER BY CAST(dt as Timestamp)
    MEASURES
        Last(Q.dt) as T,
        First(Y.key) as Key
    ONE ROW PER MATCH
    AFTER MATCH SKIP TO NEXT ROW
    PATTERN (
      (Y Q)
    )
    DEFINE
        Y as (Y.key) % 3 = 0,
        Q as (Q.key) % 3 <> 0
    ) as MR
ORDER BY MR.T;