hive:无法获得不同类别的总和

yeotifhr  于 2021-06-03  发布在  Hadoop
关注(0)|答案(2)|浏览(296)

在hive中,我试图从下面的简单表中得到结果

custername Prjtid Hours  Billable_Status

ABC         AB123  10     Billable

ABC         AB123  20     Non-Billable

ABC         AC123  10     Billable

ABC         AB123  30     Billable

PQR         PQ123  20     Billable

PQR         PQ123  30     Billable

PQR         PQ123  20     Non-Billable

现在我想展示一下, Custername, Prjtid, (Total number of billable), (total number of non-billable). 例子:
ABC, AB123, 40, 20 PQR, PQ123, 50, 20 我可以得到收费或非收费,但不能在一起。
有谁能告诉我该怎么做?
当做,
拉吉

xkrw2x1b

xkrw2x1b1#

可能与主题无关,但下面的内容适用于mysql,
选择a.custername、a.prjtid、a.billable\u hours作为可计费,b.not\u billable\u hours作为不可计费(从表中选择custername、prjtid、sum(hours)作为可计费,其中billable\u status='billable'按客户名称分组)作为,(选择custername、prjtid,总计(小时数)为不可计费的小时数(来自表,其中status='non-billable'按客户名称分组)为b,其中a.custername=b.custername;

oknwwptz

oknwwptz2#

小组成员应提供您需要的:

SELECT Custername, Prjtid, 
SUM(CASE WHEN Billable_Status = 'Billable' THEN Hours ELSE 0 END ),
SUM(CASE WHEN Billable_Status = 'Non-Billable' THEN Hours ELSE 0 END )
FROM table
GROUP BY Custername,Prjtid;

相关问题