У меня есть таблица транзакций клиентов, где индивидуальный_идентификатор появляется один раз для каждой отдельной транзакции. Существует столбец категории с именем Name_des c, который я хотел бы сгруппировать по отдельным лицам и найти наиболее распространенную категорию name_des c для отдельных лиц.
Предположим, что данные похожи на
Id Name_desc
---- ------
1 a
2 c
1 b
2 c
1 b
Я хочу вывод ниже
Id Name_desc( most occuring category)
------ ------
1 b
2 c
Я попытался выполнить запрос ниже и получил Ошибка при компиляции оператора: СБОЙ: ParseException строка 4:19 не может распознать ввод рядом с 'select '' max '' ('в спецификации выражения ошибка
select name_desc, count(*) as count_e
from db.cust_scan
group by id, name_desc
having count(*)= ( select max(count_e),id
from
(
select id, name_desc, count(*) as count_e
from
db.cust_scan
where
base_div_nbr =1
and
country_code ='US'
and
retail_channel_code=1
and visit_date between '2019-01-01' and '2019-12-31'
GROUP by
individual_id, tt_id_desc
order by individual_id, count_e desc
) as t
group by individual_id )
Буду признателен за любые предложения или помощь в отношении запроса. Если есть эффективный способ выполнить эту работу. Дайте мне знать .