Как сгруппировать значения на основе ключа в Alibaba MaxCompute?

Я сталкиваюсь с проблемами при попытке сгруппировать значения на основе ключа в Alibaba MaxCompute. Раньше я использовал подобные запросы в Alibaba Cloud MaxCompute, но теперь выдает ошибку.

Например,

SELECT * FROM table GROUP BY key;

Это должно работать, но выдает ошибку, например

FAILED: ODPS-0130071:[1,8] Исключение семантического анализа — ссылка на столбец table.value должна отображаться в ключе GROUP BY

Любой может помочь мне с этим, чтобы понять, почему эта ошибка возникает.


person Ranjith Udayakumar    schedule 21.11.2018    source источник


Ответы (1)


В более ранней версии MaxCompute select * from group by key поддерживается, даже если столбцы, соответствующие *, не включены в ключ GROUP BY. Совместимый с Hive, MaxCompute 2.0 запрещает этот синтаксис, если только список GROUP BY не является столбцом во всех исходных таблицах.

Примеры:

Сценарий 1. Ключ GROUP BY включает не все столбцы.

Неправильный синтаксис:

SELECT * FROM t GROUP BY key;

Правильный синтаксис:

SELECT DISTINCT key FROM t;

Сценарий 2. Ключ GROUP BY включает все столбцы.

Не рекомендуемый синтаксис:

SELECT * FROM t GROUP BY key, value; -- t has columns key and value

Рекомендуемый синтаксис:

SELECT DISTINCT key, value FROM t;
person Vin    schedule 21.11.2018