ClickHouse UNION ALL子句介绍

x33g5p2x  于2021-02-20 发布在 ClickHouse  
字(0.6k)|赞(0)|评价(0)|浏览(12908)

你可以使用 UNION ALL 结合任意数量的 SELECT 来扩展其结果。 示例:

SELECT CounterID, 1 AS table, toInt64(count()) AS c
    FROM test.hits
    GROUP BY CounterID

UNION ALL

SELECT CounterID, 2 AS table, sum(Sign) AS c
    FROM test.visits
    GROUP BY CounterID
    HAVING c > 0

结果列通过它们的索引进行匹配(在内部的顺序 SELECT). 如果列名称不匹配,则从第一个查询中获取最终结果的名称。

对联合执行类型转换。 例如,如果合并的两个查询具有相同的字段与非-NullableNullable 从兼容类型的类型,由此产生的 UNION ALL 有一个 Nullable 类型字段。

属于以下部分的查询 UNION ALL 不能用圆括号括起来。 [ORDER BY] 和 [LIMIT] 应用于单独的查询,而不是最终结果。 如果您需要将转换应用于最终结果,则可以将所有查询 UNION ALL 在子查询中 [FROM] 子句。

限制

只有 UNION ALL 支持。 UNION (UNION DISTINCT)不支持。 如果你需要 UNION DISTINCT,你可以写 SELECT DISTINCT 子查询中包含 UNION ALL.

实现细节

属于 UNION ALL 的查询可以同时运行,并且它们的结果可以混合在一起。

相关文章

微信公众号

最新文章

更多