问题描述
我有以下记录:
select * from TunnelStepChoiceReducer
name: TunnelStepChoiceReducer
time choice sessionId
---- ------ ---------
1599651000355000000 Montello,Amarante 10ab42e2-f0e9-4990-86cb-30c470c80dd6
1599651017091000000 Montello,Palencia 10ab42e2-f0e9-4990-86cb-30c470c80dd6
1599651032982000000 Alvera,Vicence 10ab42e2-f0e9-4990-86cb-30c470c80dd6
1599651063909000000 Montello,Amarante 3b06af01-484d-479e-a872-98163f92b31c
1599651095278000000 Montello,Palencia 28161863-59c2-4a3a-b59c-457737268ee6
1599651109698000000 Montello,Amarante 28161863-59c2-4a3a-b59c-457737268ee6
choice
和sessionId
都是标签。
我在此度量标准中还有其他标签和字段(在摘要中已手动删除),但它们与我的问题无关。
我想做的是只记住 sessionId的最后一条记录,然后按选择分组,以计算选择一个选项的人数(他们的最终决定)。
结果应为:
- Alvera,地点:1
- 蒙特洛,阿马兰特:2
我首先要做的是创建一个查询,该查询仅保留sessionId的最后一条记录:
select * from TunnelStepChoiceReducer group by sessionId order by desc limit 1
name: TunnelStepChoiceReducer
tags: sessionId=3b06af01-484d-479e-a872-98163f92b31c
time choice
---- ------
1599651063909000000 Montello,Amarante
name: TunnelStepChoiceReducer
tags: sessionId=28161863-59c2-4a3a-b59c-457737268ee6
time choice
---- ------
1599651109698000000 Montello,Amarante
name: TunnelStepChoiceReducer
tags: sessionId=10ab42e2-f0e9-4990-86cb-30c470c80dd6
time choice
---- ------
1599651032982000000 Alvera,Vicence
那太近了!现在,我只需要按选择重新分组,然后使用count()计数组中的记录。 因此,让我们尝试通过上面已删除重复项的子集对子集进行选择:
select * from (select * from TunnelStepChoiceReducer group by sessionId order by desc limit 1) group by choice order by desc
name: TunnelStepChoiceReducer
tags: choice=Montello,Palencia
time choice sessionId
---- ------ ---------
1599651095278000000 Montello,Palencia 28161863-59c2-4a3a-b59c-457737268ee6
1599651017091000000 Montello,Palencia 10ab42e2-f0e9-4990-86cb-30c470c80dd6
name: TunnelStepChoiceReducer
tags: choice=Montello,Amarante
time choice sessionId
---- ------ ---------
1599651109698000000 Montello,Amarante 28161863-59c2-4a3a-b59c-457737268ee6
1599651063909000000 Montello,Amarante 3b06af01-484d-479e-a872-98163f92b31c
1599651000355000000 Montello,Amarante 10ab42e2-f0e9-4990-86cb-30c470c80dd6
name: TunnelStepChoiceReducer
tags: choice=Alvera,Vicence
time choice sessionId
---- ------ ---------
1599651032982000000 Alvera,Vicence 10ab42e2-f0e9-4990-86cb-30c470c80dd6
啊。 sessionId
及其“重复”记录又回来了,我不知道为什么。就像过滤子查询根本没有任何影响一样,实际上,它等效于仅做:
select * from TunnelStepChoiceReducer group by choice
NB:在内部查询中,我也尝试不选择*
,而是选择不包含sessionId
的特定子集,但是sessionId
仍然返回外部查询结果。
所以我的问题是:
考虑到InfluxDB的敏感程度,可能是相关的详细信息:
- 稍后我将添加WHERE time子句,以及SHOW TAG KEYS / VALUES do not work with such a clause;
- 此查询的目的是成为一个连续查询以填充降采样的度量。同样,目标是在给定的时间范围内对用户的选择进行计数(),删除单个sessionId的重复记录。
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)