Требуется альтернативный запрос в ограничении Apache Hive

Мне нужен альтернативный запрос для запроса ниже.


Выберите a.name, max (a.cnt) из (Выберите имя, count (name) as cnt из группы кандидатов по имени) группу по a.name в порядке 2 desc limit 1;


удалить таблицу, если существует кандидат;

создать внешнюю таблицу кандидата (строка имени), хранящуюся как текстовый файл LOCATION '/ user / cloudera / test / Exercise / scheme'

загрузить данные в пути '/ user / cloudera / test / scheme' перезаписать в таблицу-кандидат;

Пример данных:

раджа

раджа

раджа

раджа

раджа

Анил

Анил

Анил

Анил

Анил

Анил

Анил

Гири

Гири

Гири

махе

махе

Мне нужен результат, название которого повторяется больше раз. В соответствии с приведенным выше примером

Анил повторил еще раз.

Чтобы добиться результата, я написал запрос ниже. Но меня не устраивает производительность этого запроса, есть ли у кого-нибудь альтернатива для этого запроса?

Выберите a.name, max (a.cnt) из (Выберите имя, count (name) as cnt из группы кандидатов по имени) группу по порядку a.name по 2 desc limit 1;

Спасибо Venkadesan


person Venkadesh Venkat    schedule 01.12.2015    source источник


Ответы (1)


Select name, COUNT(*) AS cnt
FROM candidate 
GROUP by name
ORDER BY COUNT(*) DESC
LIMIT 1

Делает это одним запросом и должен работать быстрее.

person Ben Watson    schedule 01.12.2015