Tuple(T1, T2, ...)
Кортеж элементов, каждый из которых имеет свой индивидуальный тип. Кортеж должен содержать как минимум один элемент.
Кортежи используются для временной группировки столбцов. Столбцы могут быть сгруппированы, когда в запросе используется выражение IN, и для указания определенных формальных параметров лямбда-функций. Для получения дополнительной информации см. разделы Операторы IN и Функции высшего порядка.
Кортежи могут быть результатом запроса. В этом случае, для текстовых форматов, отличных от JSON, значения разделяются запятыми в скобках. В форматах JSON кортежи выводятся как массивы (в квадратных скобках).
Создание кортежей
Вы можете использовать функцию для создания кортежа:
Пример создания кортежа:
Кортеж может содержать единственный элемент.
Пример:
Синтаксис (tuple_element1, tuple_element2)
может быть использован для создания кортежа из нескольких элементов без вызова функции tuple()
.
Пример:
Обнаружение типа данных
При создании кортежей на лету ClickHouse определяет тип аргументов кортежа как наименьшие типы, которые могут содержать предоставленные значения аргументов. Если значение равно NULL, то определённый тип будет Nullable.
Пример автоматического определения типа данных:
Обращение к элементам кортежа
К элементам кортежа можно обратиться по имени или по индексу:
Результат:
Операции сравнения с кортежем
Два кортежа сравниваются, последовательно сравнивая их элементы слева направо. Если элемент первого кортежа больше (меньше) соответствующего элемента второго кортежа, то первый кортеж больше (меньше) второго, в противном случае (если оба элемента равны) сравнивается следующий элемент.
Пример:
Примеры из реальной жизни: