我的表tbl\数据(事件\时间、监视器\ id、类型、事件\日期、状态)
select status,sum(runningDifference(event_time)) as delta from (SELECT status,event_date,event_time FROM tbl_data WHERE event_date >= '2018-05-01' AND monitor_id =3 ORDER BY event_time ASC) group by status
结果将是
status delta
1 4665465
2 965
这个查询结果给了我一个监视器id的正确答案,现在我需要多个监视器id,
如何在单个/相同的查询中实现它??
1条答案
按热度按时间gupuwyp21#
通常这是通过条件表达式实现的。就像
SELECT ...,if(monitor_id = 1, status, NULL) AS status1,...
然后你做你的聚合函数,你可能知道,跳过空值。但我做了一些测试,结果发现是因为clickhouse的内部结构runningDifference()
无法区分来自同一源的列。同时,它可以很好地区分来自不同来源的列。它是一只虫子。我在github上打开了一个问题:https://github.com/yandex/clickhouse/issues/2590
最新消息:开发人员的React非常快,而且有来自
master
你可以用我描述的策略得到你想要的。代码示例见问题。