【问题标题】:How to merge 2 queries in 1?如何将 2 个查询合并为 1 个?
【发布时间】:2018-11-27 08:18:29
【问题描述】:

我有两个请求做同样的事情,但针对不同的组。

SELECT count() FROM Table1 WHERE label = 'label1' AND group IN (0) AND date >= '2018-01-01' AND date <= '2018-02-01';

SELECT count() FROM Table1 WHERE label = 'label1' AND group IN (3, 4, 5, 6, 7, 8) AND date >= '2018-03-01' AND date <= '2018-03-01';

我可以将其拆分为一个查询吗?

【问题讨论】:

  • 您可以使用UNION ALLLink

标签: clickhouse


【解决方案1】:

你可以使用..

UNION ALL

..在两个查询之间只返回一个结果。它仍然是两个查询,但是,如果您希望它是一个查询,则可以使用 CASE WHEN 。

SELECT 
    SUM(CASE WHEN group = 0 AND date BETWEEN '2018-01-01' AND '2018-02-01' THEN 1 END) As Group1,
    SUM(CASE WHEN group IN (3, 4, 5, 6, 7, 8) AND date BETWEEN '2018-03-01' AND '2018-03-01 THEN 1 END) As Group2
FROM Table1 
WHERE label = 'label1'

【讨论】:

  • 请注意,第二次查询的时间段只有一天。我还将 >= 和
猜你喜欢
  • 1970-01-01
  • 2020-12-06
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2010-11-04
  • 1970-01-01
相关资源
最近更新 更多