【发布时间】:2021-10-22 02:11:06
【问题描述】:
假设我在 Druid 上执行以下两个查询:
SELECT COUNT(DISTINCT field_1) FROM my_table WHERE field_2 = 10
SELECT COUNT(DISTINCT field_1) FROM my_table WHERE field_2 = 11
我尝试将两个计数与一个总和聚合组合在一个查询中,如下所示:
Select q1.totalcount + q2.totalcount FROM
(SELECT COUNT(DISTINCT field_1) AS totalcount
FROM my_table WHERE field_2 = 10) as q1,
(SELECT COUNT(DISTINCT field_1) AS totalcount
FROM my_table WHERE field_2 = 11) as q2
除非两个计数之一返回 0 行,否则它运行良好。
在这种情况下,我会收到一条 Query returned no data 消息,即使两个子查询之一返回了一些结果,我也没有来自 SUM 查询的任何最终结果。
我该如何解决这个问题?
【问题讨论】:
-
DISTINCT不是一个函数,它是一个集合量词。跳过那些多余的括号以避免混淆 - 即只需执行COUNT(DISTINCT field_1)。
标签: sql count case distinct druid