具有InfluxDB子查询的多个group by子句

问题描述

我有以下记录:

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

choicesessionId都是标签。 我在此度量标准中还有其他标签和字段(在摘要中已手动删除),但它们与我的问题无关。

我想做的是只记住 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的敏感程度,可能是相关的详细信息:

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)