У меня есть таблица, подобная следующей
UserId | ActionType
--------------------
1 | Create
2 | Read
1 | Edit
2 | Create
3 | Read
Я хочу найти «самое высокое» действие, которое совершил пользователь, со следующей иерархией Create > Edit > Read
.Выполнение нужного запроса должно вернуть
UserId | ActionType
-------------------
1 | Create
2 | Create
3 | Read
Есть ли способ использовать MAX()
в HIVE для этого?Моя структура выглядит как следующий очень простой запрос, но я не уверен, как вычислить вышеуказанный столбец ActionType.
SELECT UserId, ??? FROM UserActions GROUP BY UserId;
Я думаю, что возможные решения - это операторы CASE
в GROUP BY
или преобразование значений в числовые значения, такие как (Read => 0, Edit => 1, Create => 2)
, а затем выполнение GROUP BY
, но я надеюсь, что есть более элегантное решение.
Спасибо!