问题描述
我有两个表,我想对短语在数据中的次数进行求和。需要注意的是,我想进行一个月至今的分析,因此收集从当月第一天到当前日期 - 1(即运行脚本的前一天)之间的所有记录。我写了一个获取计数的脚本(见下文),但我只想有一个包含计数总和的记录。
这是我的代码:
WITH AB AS (
SELECT substr(A1.tm,1,10) as the_DATE,A1.LOG_ID
FROM db1.table1 A1,db1.table2 A2 WHERE A1.LOG_ID=A2.LOG_ID
and substr(A1.tm,10) between date_add(last_day(add_months(current_date,-1)),1) and date_sub(current_timestamp(),1)
),BC AS (
SELECT AB.the_DATE,COUNT ( disTINCT (CASE WHEN (TXT like '% assistance%') THEN AB.LOG_ID ELSE NULL END )) AS
assistance,COUNT ( disTINCT (CASE WHEN (TXT like '%help%') THEN AB.LOG_ID ELSE NULL END )) AS
helpp,COUNT(disTINCT AB.LOG_ID) AS VOL_TOTAL
FROM AB LEFT JOIN db1.tabel2 BC ON AB.LOG_ID =BC.LOG_ID
where substr(tm,1)
group by AB.the_DATE
)
SELECT coalesce(BC.the_date,date_sub(current_timestamp(),1)) as the_DATE,COALESCE(BC.VOL_TOTAL,0) AS VOL_TOTAL,COALESCE (BC.assistance,0) AS assistance,COALESCE (BC.help,0) AS helpp
FROM BC;
产生什么
the_date | vol_total | assistance | helpp
2021-04-03,3,5,6
2021-04-06,6
2021-04-01,6
2021-04-04,6
2021-04-07,6
我希望输出是:
the_date | vol_total | assistance | helpp
2021-04-07,15,25,30
因此,每个字段的总和与“the_date”字段一起计算为昨天的日期。我是 hive 的新手,它的功能所以任何想法都有助于获得我想要的输出。
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)