Skip to main content
Skip to main content
Edit this page

Функции для работы с кортежами

tuple

Функция, позволяющая сгруппировать несколько столбцов. Для столбцов, имеющих типы T1, T2, ... возвращает кортеж типа Tuple(T1, T2, ...), содержащий эти столбцы. Выполнение функции ничего не стоит. Кортежи обычно используются как промежуточное значение в качестве аргумента операторов IN, или для создания списка формальных параметров лямбда-функций. Кортежи не могут быть записаны в таблицу.

С помощью функции реализуется оператор (x, y, ...).

Синтаксис

tupleElement

Функция, позволяющая достать столбец из кортежа. N - индекс столбца начиная с 1. N должно быть константой. N должно быть целым строго положительным числом не большим размера кортежа. Выполнение функции ничего не стоит.

С помощью функции реализуется оператор x.N.

Синтаксис

untuple

Выполняет синтаксическую подстановку элементов кортежа в место вызова.

Синтаксис

Чтобы пропустить некоторые столбцы в результате запроса, вы можете использовать выражение EXCEPT.

Аргументы

  • x — функция tuple, столбец или кортеж элементов. Tuple.

Возвращаемое значение

  • Нет.

Примеры

Входная таблица:

Пример использования столбца типа Tuple в качестве параметра функции untuple:

Запрос:

Результат:

Пример использования выражения EXCEPT:

Запрос:

Результат:

Смотрите также

tupleHammingDistance

Возвращает расстояние Хэмминга между двумя кортежами одинакового размера.

Синтаксис

Аргументы

  • tuple1 — первый кортеж. Tuple.
  • tuple2 — второй кортеж. Tuple.

Кортежи должны иметь одинаковый размер и тип элементов.

Возвращаемое значение

  • Расстояние Хэмминга.

Тип: UInt8.

Примеры

Запрос:

Результат:

Может быть использовано с функциями MinHash для проверки строк на совпадение:

Результат:

tupleToNameValuePairs

Приводит именованный кортеж к списку пар (имя, значение). Для Tuple(a T, b T, ..., c T) возвращает Array(Tuple(String, T), ...), где Strings — это названия именованных полей, а T — это соответствующие значения. Все значения в кортеже должны быть одинакового типа.

Синтаксис

Аргументы

  • tuple — именованный кортеж. Tuple с любым типом значений.

Возвращаемое значение

  • Список пар (имя, значение).

Тип: Array(Tuple(String, ...)).

Пример

Запрос:

Результат:

С помощью этой функции можно выводить столбцы в виде строк:

Результат:

Если в функцию передается обычный кортеж, ClickHouse использует индексы значений в качестве имен:

Результат:

tuplePlus

Вычисляет сумму соответствующих значений двух кортежей одинакового размера.

Синтаксис

Синоним: vectorSum.

Аргументы

  • tuple1 — первый кортеж. Tuple.
  • tuple2 — второй кортеж. Tuple.

Возвращаемое значение

  • Кортеж с суммами.

Тип: Tuple.

Пример

Запрос:

Результат:

tupleMinus

Вычисляет разность соответствующих значений двух кортежей одинакового размера.

Синтаксис

Синоним: vectorDifference.

Аргументы

  • tuple1 — первый кортеж. Tuple.
  • tuple2 — второй кортеж. Tuple.

Возвращаемое значение

  • Кортеж с разностями.

Тип: Tuple.

Пример

Запрос:

Результат:

tupleMultiply

Вычисляет произведение соответствующих значений двух кортежей одинакового размера.

Синтаксис

Аргументы

  • tuple1 — первый кортеж. Tuple.
  • tuple2 — второй кортеж. Tuple.

Возвращаемое значение

  • Кортеж с произведениями.

Тип: Tuple.

Пример

Запрос:

Результат:

tupleDivide

Вычисляет частное соответствующих значений двух кортежей одинакового размера. Обратите внимание, что при делении на ноль возвращается значение inf.

Синтаксис

Аргументы

  • tuple1 — первый кортеж. Tuple.
  • tuple2 — второй кортеж. Tuple.

Возвращаемое значение

  • Кортеж с частными.

Тип: Tuple.

Пример

Запрос:

Результат:

tupleNegate

Применяет отрицание ко всем значениям кортежа.

Синтаксис

Аргументы

  • tuple — кортеж. Tuple.

Возвращаемое значение

  • Кортеж с результатом отрицания.

Тип: Tuple.

Пример

Запрос:

Результат:

tupleMultiplyByNumber

Возвращает кортеж, в котором значения всех элементов умножены на заданное число.

Синтаксис

Аргументы

Возвращаемое значение

  • Кортеж с результатами умножения на число.

Тип: Tuple.

Пример

Запрос:

Результат:

tupleDivideByNumber

Возвращает кортеж, в котором значения всех элементов поделены на заданное число. Обратите внимание, что при делении на ноль возвращается значение inf.

Синтаксис

Аргументы

Возвращаемое значение

  • Кортеж с результатами деления на число.

Тип: Tuple.

Пример

Запрос:

Результат:

dotProduct

Вычисляет скалярное произведение двух кортежей одинакового размера.

Синтаксис

Синоним: scalarProduct.

Аргументы

  • tuple1 — первый кортеж. Tuple.
  • tuple2 — второй кортеж. Tuple.

Возвращаемое значение

  • Скалярное произведение.

Тип: Int/UInt, Float или Decimal.

Пример

Запрос:

Результат:

L1Norm

Вычисляет сумму абсолютных значений кортежа.

Синтаксис

Синоним: normL1.

Аргументы

  • tuple — кортеж. Tuple.

Возвращаемое значение

Тип: UInt, Float или Decimal.

Пример

Запрос:

Результат:

L2Norm

Вычисляет квадратный корень из суммы квадратов значений кортежа.

Синтаксис

Синоним: normL2.

Аргументы

  • tuple — кортеж. Tuple.

Возвращаемое значение

Тип: Float.

Пример

Запрос:

Результат:

LinfNorm

Вычисляет максимум из абсолютных значений кортежа.

Синтаксис

Синоним: normLinf.

Аргументы

  • tuple — кортеж. Tuple.

Возвращаемое значение

  • Linf-норма или максимальное абсолютное значение.

Тип: Float.

Пример

Запрос:

Результат:

LpNorm

Возвращает корень степени p из суммы абсолютных значений кортежа, возведенных в степень p.

Синтаксис

Синоним: normLp.

Аргументы

  • tuple — кортеж. Tuple.
  • p — степень. Возможные значение: любое число из промежутка [1;inf). UInt или Float.

Возвращаемое значение

Тип: Float.

Пример

Запрос:

Результат:

L1Distance

Вычисляет расстояние между двумя точками (значения кортежей — координаты точек) в пространстве L1 (расстояние городских кварталов).

Синтаксис

Синоним: distanceL1.

Аргументы

  • tuple1 — первый кортеж. Tuple.
  • tuple2 — второй кортеж. Tuple.

Возвращаемое значение

  • Расстояние в норме L1.

Тип: Float.

Пример

Запрос:

Результат:

L2Distance

Вычисляет расстояние между двумя точками (значения кортежей — координаты точек) в пространстве L2 (Евклидово расстояние).

Синтаксис

Синоним: distanceL2.

Аргументы

  • tuple1 — первый кортеж. Tuple.
  • tuple2 — второй кортеж. Tuple.

Возвращаемое значение

  • Расстояние в норме L2.

Тип: Float.

Пример

Запрос:

Результат:

LinfDistance

Вычисляет расстояние между двумя точками (значения кортежей — координаты точек) в пространстве L_{inf}.

Синтаксис

Синоним: distanceLinf.

Аргументы

  • tuple1 — первый кортеж. Tuple.
  • tuple2 — второй кортеж. Tuple.

Возвращаемые значения

  • Расстояние в норме Linf.

Тип: Float.

Пример

Запрос:

Результат:

LpDistance

Вычисляет расстояние между двумя точками (значения кортежей — координаты точек) в пространстве Lp.

Синтаксис

Синоним: distanceLp.

Аргументы

  • tuple1 — первый кортеж. Tuple.
  • tuple2 — второй кортеж. Tuple.
  • p — степень. Возможные значение: любое число из промежутка [1;inf). UInt или Float.

Возвращаемое значение

  • Расстояние в норме Lp.

Тип: Float.

Пример

Запрос:

Результат:

L1Normalize

Вычисляет единичный вектор для исходного вектора (значения кортежа — координаты вектора) в пространстве L1 (расстояние городских кварталов).

Синтаксис

Синоним: normalizeL1.

Аргументы

Возвращаемое значение

  • Единичный вектор.

Тип: кортеж Tuple значений Float.

Пример

Запрос:

Результат:

L2Normalize

Вычисляет единичный вектор для исходного вектора (значения кортежа — координаты вектора) в пространстве L2 (Евклидово пространство.

Синтаксис

Синоним: normalizeL1.

Аргументы

  • tuple — кортеж. Tuple.

Возвращаемое значение

  • Единичный вектор.

Тип: кортеж Tuple значений Float.

Пример

Запрос:

Результат:

LinfNormalize

Вычисляет единичный вектор для исходного вектора (значения кортежа — координаты вектора) в пространстве L_{inf}.

Синтаксис

Синоним: normalizeLinf .

Аргументы

  • tuple — кортеж. Tuple.

Возвращаемое значение

  • Единичный вектор.

Тип: кортеж Tuple значений Float.

Пример

Запрос:

Результат:

LpNormalize

Вычисляет единичный вектор для исходного вектора (значения кортежа — координаты вектора) в пространстве Lp.

Синтаксис

Синоним: normalizeLp .

Аргументы

  • tuple — кортеж. Tuple.
  • p — степень. Возможные значение: любое число из промежутка [1;inf). UInt или Float.

Возвращаемое значение

  • Единичный вектор.

Тип: кортеж Tuple значений Float.

Пример

Запрос:

Результат:

cosineDistance

Вычисляет косинусную разницу двух векторов (значения кортежей — координаты векторов). Чем меньше возвращаемое значение, тем больше сходство между векторами.

Синтаксис

Аргументы

  • tuple1 — первый кортеж. Tuple.
  • tuple2 — второй кортеж. Tuple.

Возвращаемые значения

  • Разность между единицей и косинуса угла между векторами.

Тип: Float.

Пример

Запрос:

Результат: