FROM | ClickHouse Documentation

FROM 子句表示从何处读取数据,目前支持如下 3 种形式:

1)数据表中取数:

SELECT WatchID FROM hits_v1

2)从子查询中取数:

SELECT MAX_WatchID 
FROM (SELECT MAX(WatchID) AS MAX_WatchID FROM hits_v1)

3)从表函数中取数:

SELECT number FROM numbers(5)

FROM 关键字可以省略,此时会从虚拟表中取数。

在 ClickHouse中,并没有数据库中常见的 DUAL 虚拟表,取而代之的是 system.one。例如下面的两条查询语句,其效果是等价的:

SELECT 1 
SELECT 1 FROM system.one

┌─1─┐
│ 1  │
└───┘

在 FROM 子句后,可以使用 Final 修饰符。它可以配合 CollapsingMergeTree 和 VersionedCollapsingMergeTree 等表引擎进行查询操作,以强制在查询过程中合并,但由于 Final 修饰符会降低查询性能,所以应该尽可能避免使用它。