Я работаю над Hive. Я хочу, чтобы в этой таблице я выбрал 2 наиболее часто встречающихся значения в столбце user_agent
и поместил их все в одну строку, обобщив информацию.
У меня есть база данных, которая выглядит следующим образом:
userID | user_agent
1 | Windows NT 6.1
1 | Windows NT 6.1
1 | Windows NT 6.1
1 | Macintosh
1 | Macintosh
2 | Windows NT 6.1
2 | Windows NT 6.1
2 | Macintosh
2 | X11
3 | X11
3 | X11
4 | Windows NT 6.1
4 | X11
5 | iPhone
6 | X11
6 | iPhone
7 |
7 |
7 |
7 | Windows NT 6.1
Важно отметить, что user_agent
намного сложнее, чем в таблице примеров, имея огромное количество уникальных значений, поэтому я не могу работать с пустышками. (Я пробовал)
Давайте назовем наиболее распространенный столбец значений как top_1_user_agent
, а второй наиболее распространенный столбец - top_2_user_agent
.
Когда есть только значение, значение top_2_user_agent
должно быть нулевым, как с userID 3.
Когда есть «ничья», как с userID 2
и userID 6
, выбранное значение должно быть первым по порядку в таблице.
Результат должен выглядеть так:
userID | top_1_user_agent | top_2_user_agent
1 | Windows NT 6.1 | Macintosh
2 | Windows NT 6.1 | Macintosh
3 | X11 |
4 | Windows NT 6.1 | X11
5 | iPhone |
6 | X11 | iPhone
7 | | Windows NT 6.1
Любая помощь приветствуется. Спасибо!