У меня есть этот запрос, который работает нормально
Таблица журнала выглядит следующим образом
reportid, timestamp, userid
SELECT
reportid,
b.email
FROM
logs
JOIN mongo.user b on a.userid = b.id
WHERE
a.dt >= date_sub(current_date, 14)
GROUP BY
reportid,
b.email
Результат будет примерно таким
reportid, email
1, xxx@xxx.com
1, xxx1@xxx.com
Тем не менее, я хочу, чтобы результат был просто
reportid, email
1, xxx1@xxx.com
Это только на основе отметки времени.Я узнал о row_number
, но когда я добавил это
row_number() over (partition by userid order by timestamp desc)
, я получаю эту ошибку
Ошибка при компиляции оператора: FAILED: SemanticException Не удалось разбитьОконные вызовы в группы.Как минимум 1 группа должна зависеть только от входных столбцов.Также проверьте наличие циклических зависимостей.Основная ошибка: org.apache.hadoop.hive.ql.parse.SemanticException: строка 7:34 Выражение отсутствует в ключе GROUP BY 'userid'
Я просто хочу использовать идентификатор пользователя, который обращался к отчету последнимна основе отметки времени