填充字段的字段的配置单元查询计数

but5z9lq  于 2021-05-29  发布在  Hadoop
关注(0)|答案(1)|浏览(346)

我有一个巨大的配置单元表,由十个产品字段、购买日期字段和一个标识符组成。产品字段的名称如下 prod1 , prod2 , ... , prod10 指最近购买的十种产品。对于大多数ID,我们没有10种产品的购买历史记录。
我想为每一个国家建立一个人口比率的分布 prod<X> 字段,以显示整个数据集的采购历史明细。
目前,我正在运行一个bash脚本,它对表运行十个连续的查询,如: hive -e "select count(1) from db.tbl where prod<X> != '';" ... 并将输出保存到文件中。这看起来既笨重又低效。有没有更好的方法来指定具有一系列字段条件的字段范围上的配置单元计数?我曾尝试使用groupby甚至Map一系列字段来提出一种策略,但我不能完全围绕指定 != '' 每个字段的条件。
提前感谢您的指导。

k2arahey

k2arahey1#

select id,
sum(case when prod1='' then 0 else 1 end),
sum(case when prod2='' then 0 else 1 end),
sum(case when prod3='' then 0 else 1 end),
sum(case when prod4='' then 0 else 1 end),
sum(case when prod5='' then 0 else 1 end),
sum(case when prod6='' then 0 else 1 end),
sum(case when prod7='' then 0 else 1 end),
sum(case when prod8='' then 0 else 1 end),
sum(case when prod9='' then 0 else 1 end),
sum(case when prod10='' then 0 else 1 end)
from table group by id;

相关问题