Какой синтаксис 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иgreatestGROUP 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.