【发布时间】:2020-04-07 20:23:32
【问题描述】:
我有一个客户交易表,其中每个不同的交易都会出现一个 individual_id。 有一个名为 Name_desc 的类别列,我想按个人分组并找到每个人最常见的 name_desc 类别。
假设数据如下
Id Name_desc
---- ------
1 a
2 c
1 b
2 c
1 b
我想要下面的输出
Id Name_desc( most occuring category)
------ ------
1 b
2 c
我尝试了以下查询并得到了一个 编译语句时出错:FAILED: ParseException line 4:19 cannot identify input near 'select' 'max' '(' in expression specification 错误
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 )
如果有任何关于查询的建议或帮助,我将不胜感激。如果有一种有效的方法来完成这项工作。告诉我。
【问题讨论】: