Как найти режим столбца типа строка в mysql? - PullRequest
0 голосов
/ 02 мая 2020

У меня есть таблица из 2 столбцов, user_id и connection_type. Оба поля не являются уникальными. Один идентификатор пользователя может появляться много раз, а один тип подключения может появляться много раз. Как мне найти наиболее повторяющийся тип соединения для каждого идентификатора пользователя?

У меня есть таблица:

schema: 
user_id -- INT 
connection_type -- STRING

user_id connection_type 
101     4g 
102     3g 
101     4g 
101     2g 
102     2g 
101     4g 
102     4g 
101     4g 
102     4g 
101     4g
102     3g
102     3g
102     3g

Таблица, которая мне нужна из приведенного выше:

user_id mode 
101     4g
102     3g

1 Ответ

1 голос
/ 02 мая 2020

Вы можете использовать оконную функцию:

select user_id, connection_type as mode
from (select user_id, connection_type, 
             dense_rank() over (partition by user_id order by count(*) desc) as seq
      from table t
      group by user_id, connection_type
     ) t
where seq = 1;
...