如何总结 Hive 中的计数

问题描述

我有两个表,我想对短语在数据中的次数进行求和。需要注意的是,我想进行一个月至今的分析,因此收集从当月第一天到当前日期 - 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 (将#修改为@)

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...