我有一个名为“scan”customer transactions的表,其中每个不同的事务都会出现一个单独的\u id,并包含类似scan \u id的列。我还有一个名为ids的表,其中包含从scan表中随机抽取的单个\u id
我想把ids和scan连接起来,如果ids和scan\ id与某些值匹配的话,我会得到一个ids和scan\ id的记录。
假设数据如下
扫描表
Ids scan_id
---- ------
1 100
1 111
1 1000
2 100
2 111
3 124
4 1000
4 111
Ids table
id
1
2
3
4
5
我想要下面的输出,即如果扫描id匹配100或1000
Id MT
------ ------
1 1
2 1
3 0
4 1
我执行下面的查询并得到错误
select MT, d.individual_id
from
(
select
CASE
when scan_id in (90069421,53971306,90068594,136739913,195308160) then 1
ELSE 0
END as MT
from scan cs join ids r
on cs.individual_id = r.individual_id
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'
) as d
group by individual_id;
我将感谢任何建议或帮助关于这个Hive查询。如果有一个有效的方法来完成这项工作。让我知道。
1条答案
按热度按时间koaltpgm1#
使用
group by
:这个
ids
此查询似乎不需要表。