Перейти к основному содержанию
Перейти к основному содержанию

Какой синтаксис SQL поддерживает ClickHouse?

ClickHouse полностью поддерживает синтаксис SQL, включая такие возможности, как:

  • SQL/JSON и тип данных JSON (SQL-2023)
  • оконные функции (SQL-2003)
  • общие табличные выражения (CTE) и рекурсивные запросы (SQL-1999)
  • ROLLUP, CUBE и GROUPING SETS (SQL-1999)
  • полная поддержка RBAC (SQL-1999)
  • коррелированные подзапросы (SQL-1992);

Поддержка подтверждена бенчмарками TPC-H и TPC-DS, а также SQLTest.

ClickHouse внедрил многие функции до того, как они были стандартизованы ISO/IEC, в том числе:

  • условные агрегатные функции
  • агрегатные функции any
  • least и greatest
  • 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.