RETENTION
SinceVersion 1.2.0
RETENTION
description
Syntax
retention(event1, event2, ... , eventN);
留存函数将一组条件作为参数,类型为1到32个UInt8类型的参数,用来表示事件是否满足特定条件。 任何条件都可以指定为参数.
除了第一个以外,条件成对适用:如果第一个和第二个是真的,第二个结果将是真的,如果第一个和第三个是真的,第三个结果将是真的,等等。
简单来讲,返回值数组第1位表示event1的真假,第二位表示event1真假与event2真假相与,第三位表示event1真假与event3真假相与,等等。如果event1为假,则返回全是0的数组。
Arguments
event — 返回UInt8结果(1或0)的表达式.
Returned value
由1和0组成的最大长度为32位的数组,最终输出数组的长度与输入参数长度相同。
1 — 条件满足。
0 — 条件不满足
example
1. DROP TABLE IF EXISTS retention_test;
3. CREATE TABLE retention_test(
4. `uid` int COMMENT 'user id',
5. `date` datetime COMMENT 'date time'
6. )
7. DUPLICATE KEY(uid)
8. DISTRIBUTED BY HASH(uid) BUCKETS 3
9. PROPERTIES (
10. "replication_num" = "1"
11. );
13. INSERT into retention_test (uid, date) values (0, '2022-10-12'),
14. (0, '2022-10-13'),
15. (0, '2022-10-14'),
16. (1, '2022-10-12'),
17. (1, '2022-10-13'),
18. (2, '2022-10-12');
20. SELECT * from retention_test;
22. +------+---------------------+
23. | uid | date |
24. +------+---------------------+
25. | 0 | 2022-10-14 00:00:00 |
26. | 0 | 2022-10-13 00:00:00 |
27. | 0 | 2022-10-12 00:00:00 |
28. | 1 | 2022-10-13 00:00:00 |
29. | 1 | 2022-10-12 00:00:00 |
30. | 2 | 2022-10-12 00:00:00 |
31. +------+---------------------+
33. SELECT
34. uid,
35. retention(date = '2022-10-12')
36. AS r
37. FROM retention_test
38. GROUP BY uid
39. ORDER BY uid ASC;
41. +------+------+
42. | uid | r |
43. +------+------+
44. | 0 | [1] |
45. | 1 | [1] |
46. | 2 | [1] |
47. +------+------+
49. SELECT
50. uid,
51. retention(date = '2022-10-12', date = '2022-10-13')
52. AS r
53. FROM retention_test
54. GROUP BY uid
55. ORDER BY uid ASC;
57. +------+--------+
58. | uid | r |
59. +------+--------+
60. | 0 | [1, 1] |
61. | 1 | [1, 1] |
62. | 2 | [1, 0] |
63. +------+--------+
65. SELECT
66. uid,
67. retention(date = '2022-10-12', date = '2022-10-13', date = '2022-10-14')
68. AS r
69. FROM retention_test
70. GROUP BY uid
71. ORDER BY uid ASC;
73. +------+-----------+
74. | uid | r |
75. +------+-----------+
76. | 0 | [1, 1, 1] |
77. | 1 | [1, 1, 0] |
78. | 2 | [1, 0, 0] |
79. +------+-----------+
keywords
RETENTION
