如何解决SQL 查询ClickHouse:按值之间的时间差异小于 X 的位置分组
我需要一些关于 sql-query 的帮助。我正在使用 clickhouse,但也许标准 sql 语法足以完成这项任务。
我有下表:
Example_1Example2Example_3
Example_1_1Example2_2Example_3_3
我想在这个例子的最后有什么 - 2行:
SELECT arrayStringConcat(groupArray(Text))
FROM (SELECT event_time,Text,ID
FROM Test_Table
ORDER by event_time asc)
GROUP BY ID;
基于 ID 的文本字段的串联。这个 ID 在某个时间间隔内不是唯一的问题。作为一个例子,它只有一分钟是独一无二的。所以我只想连接第一行和最后一行之间的差异小于一分钟的字符串。
import controlP5.*;
import java.util.*;
ControlP5 cp5;
void setup() {
size(400,400);
cp5 = new ControlP5(this);
List l = Arrays.asList("a","b","c","d","e","f","g","h");
/* add a ScrollableList,by default it behaves like a DropdownList */
cp5.addScrollableList("dropdown")
.setPosition(100,100)
.setSize(200,100)
.setBarHeight(20)
.setItemHeight(20)
.addItems(l)
// .setType(ScrollableList.LIST) // currently supported DROPDOWN and LIST
;
}
void draw() {
background(240);
}
解决方法
这是一个例子
create table X(event_time DateTime,Text String,ID Int64) Engine=Memory;
insert into X values ('2021-03-16 09:00:48','Example_1',1),('2021-03-16 09:00:49','Example_2',('2021-03-16 09:00:50','Example_3',('2021-03-16 09:01:48','Example_4',('2021-03-16 09:01:49','Example_5',('2021-03-16 09:15:48','Example_1_1',('2021-03-16 09:15:49','Example_2_2',('2021-03-16 09:15:50','Example_3_3',1);
SELECT * FROM X
┌──────────event_time─┬─Text────────┬─ID─┐
│ 2021-03-16 09:00:48 │ Example_1 │ 1 │
│ 2021-03-16 09:00:49 │ Example_2 │ 1 │
│ 2021-03-16 09:00:50 │ Example_3 │ 1 │
│ 2021-03-16 09:01:48 │ Example_4 │ 1 │
│ 2021-03-16 09:01:49 │ Example_5 │ 1 │
│ 2021-03-16 09:15:48 │ Example_1_1 │ 1 │
│ 2021-03-16 09:15:49 │ Example_2_2 │ 1 │
│ 2021-03-16 09:15:50 │ Example_3_3 │ 1 │
└─────────────────────┴─────────────┴────┘
在这种情况下预期的结果是什么?
CH 21.3
set allow_experimental_window_functions = 1;
SELECT
ID,y,groupArray(event_time),groupArray(Text)
FROM
(
SELECT
ID,event_time,Text,max(event_time) OVER (PARTITION BY ID ORDER BY event_time ASC RANGE BETWEEN CURRENT ROW AND 60 FOLLOWING) AS y
FROM X
)
GROUP BY
ID,y
ORDER BY
ID ASC,y ASC
Query id: 9219a1f2-8c96-425f-9301-745fa7b88b40
┌─ID─┬───────────────────y─┬─groupArray(event_time)────────────────────────────────────────────────────────────────────┬─groupArray(Text)──────────────────────────────────┐
│ 1 │ 2021-03-16 09:01:48 │ ['2021-03-16 09:00:48'] │ ['Example_1'] │
│ 1 │ 2021-03-16 09:01:49 │ ['2021-03-16 09:00:49','2021-03-16 09:00:50','2021-03-16 09:01:48','2021-03-16 09:01:49'] │ ['Example_2','Example_5'] │
│ 1 │ 2021-03-16 09:15:50 │ ['2021-03-16 09:15:48','2021-03-16 09:15:49','2021-03-16 09:15:50'] │ ['Example_1_1','Example_3_3'] │
└────┴─────────────────────┴───────────────────────────────────────────────────────────────────────────────────────────┴───────────────────────────────────────────────────┘
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。