跳到主要内容
跳到主要内容

ClickHouse 支持哪些 SQL 语法?

ClickHouse 对 SQL 语法提供了完整支持,包括以下特性:

  • SQL/JSON 和 JSON 数据类型(SQL-2023)
  • 窗口函数(SQL-2003)
  • 公用表表达式和递归查询(SQL-1999)
  • ROLLUP、CUBE 和 GROUPING SETS(SQL-1999)
  • 对 RBAC 的完整支持(SQL-1999)
  • 关联子查询(SQL-1992)

这一支持已经通过 TPC-H 和 TPC-DS 基准测试以及 SQLTest 得到验证。

ClickHouse 在许多特性被 ISO/IEC 标准化之前就已经引入了它们,例如:

  • 条件聚合函数
  • any 聚合函数
  • leastgreatest
  • GROUP BY ALL
  • 对别名的扩展使用
  • 数字字面量中的下划线

ClickHouse 通过引入大量提升使用体验的改进来扩展 SQL:

  • 不受限制地使用别名
  • WITH 子句中的别名
  • 聚合函数组合器
  • 参数化聚合函数
  • 近似聚合函数
  • 原生大整数数值类型和扩展精度小数类型
  • 用于数组操作的高阶函数
  • ARRAY JOIN 子句和 arrayJoin 函数
  • 数组聚合
  • LIMIT BY 子句
  • GROUP BY WITH TOTALS
  • AS OF JOIN
  • ANY/ALL JOIN
  • 更自然的 JSON 语法
  • 列表中的尾随逗号
  • FROM ... SELECT 子句顺序
  • 类型安全的查询参数和参数化视图

其中一些特性有机会被纳入即将发布的 SQL 标准,而它们已经可以在 ClickHouse 中使用。