123456789101112131415161718192021222324252627282930313233343536373839 |
- PRAGMA FeatureR010="prototype";
- $input = SELECT * FROM AS_TABLE([
- <|time: 0, value: 1u, name: "A"|>,
- <|time: 100, value: 2u, name: "A"|>,
- <|time: 200, value: 3u, name: "B"|>,
- <|time: 300, value: 3u, name: "B"|>,
- <|time: 400, value: 4u, name: "A"|>,
- <|time: 500, value: 5u, name: "A"|>,
- ]);
- SELECT * FROM $input MATCH_RECOGNIZE (
- ORDER BY CAST(time AS Timestamp)
- MEASURES
- SUM(A.value + 1u + LENGTH(A.name)) AS aggr_expr,
- FIRST(A.value) AS first_a,
- LAST(A.value) AS last_a,
- COUNT(A.value) AS count_a,
- COUNT(DISTINCT A.value) AS count_distinct_a,
- AGGREGATE_LIST(A.value) AS aggrlist_a,
- AGGREGATE_LIST_DISTINCT(A.value) AS aggrlist_distinct_a,
- FIRST(B.value) AS first_b,
- LAST(B.value) AS last_b,
- COUNT(B.value) AS count_b,
- COUNT(DISTINCT B.value) AS count_distinct_b,
- AGGREGATE_LIST(B.value) AS aggrlist_b,
- AGGREGATE_LIST_DISTINCT(B.value) AS aggrlist_distinct_b,
- FIRST(C.value) AS first_c,
- LAST(C.value) AS last_c,
- COUNT(C.value) AS count_c,
- COUNT(DISTINCT C.value) AS count_distinct_c,
- AGGREGATE_LIST(C.value) AS aggrlist_c,
- AGGREGATE_LIST_DISTINCT(C.value) AS aggrlist_distinct_c
- PATTERN (A* B C* B A*)
- DEFINE
- A AS A.name = "A" AND COALESCE(FIRST(B.value + 1u + LENGTH(B.name)) = 5, TRUE),
- B AS B.name = "B" AND FIRST(A.value + 1u + LENGTH(A.name)) = 3,
- C AS C.name = "C"
- );
|