Druid SQL与Native Query统计结果差异及longSum聚合SQL实现问询
问题原因分析
- 你当前SQL里的
count(1)是统计原始数据行的行数,每一行原始记录都会被计为1,最终结果是每个小时内的原始数据条目总数。 - 而Native Query中用
longSum聚合count字段,是对数据源中自带的count度量字段的值进行求和——这个count是数据本身包含的数值(比如预聚合场景下,一条记录代表N次重复事件,count字段存储的就是N),并非SQL的计数函数。两者统计逻辑完全不同,所以结果会出现明显差异。
对应Native Query结果的SQL写法
要实现和Native Query的longSum(count)等价的统计,直接对count字段使用SUM()聚合函数即可:
SELECT TIME_FLOOR(__time, 'PT1H') AS t, SUM(count) AS cnt FROM mydatasource GROUP BY 1
内容的提问来源于stack exchange,提问作者Danny.an
相关产品推荐
相关产品推荐

