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

array_unique_agg

Описание

Агрегирует уникальные значения (включая NULL) в столбце ARRAY в массив (из нескольких строк в одну строку).

Эта функция поддерживается начиная с версии 1.5.0.

Синтаксис

ARRAY_UNIQUE_AGG(col)

Параметры

  • col: столбец, значения которого вы хотите агрегировать. Поддерживаемый тип данных — ARRAY.

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

Возвращает значение типа ARRAY.

Примечания по использованию

  • Порядок элементов в массиве случайный.
  • Тип данных элементов в возвращаемом массиве совпадает с типом данных элементов во входном столбце.
  • Возвращает NULL, если нет подходящего значения.

Примеры

Рассмотрим следующую таблицу данных в качестве примера:

mysql > select * from array_unique_agg_example;
+------+--------------+
| a | b |
+------+--------------+
| 2 | [1,null,2,4] |
| 2 | [1,null,3] |
| 1 | [1,1,2,3] |
| 1 | [2,3,4] |
+------+--------------+

Пример 1: Группировка значений в столбце a и агрегирование уникальных значений в столбце b в массив.

mysql > select a, array_unique_agg(b) from array_unique_agg_example group by a;
+------+---------------------+
| a | array_unique_agg(b) |
+------+---------------------+
| 1 | [4,1,2,3] |
| 2 | [4,1,2,3,null] |
+------+---------------------+

Пример 2: Агрегирование значений в столбце b с использованием предложения WHERE. Если никакие данные не соответствуют условию фильтра, возвращается значение NULL.

mysql > select array_unique_agg(b) from array_unique_agg_example where a < 0;
+---------------------+
| array_unique_agg(b) |
+---------------------+
| NULL |
+---------------------+

Ключевые слова

ARRAY_UNIQUE_AGG, ARRAY