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

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

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

  1. custername Prjtid Hours Billable_Status
  2. ABC AB123 10 Billable
  3. ABC AB123 20 Non-Billable
  4. ABC AC123 10 Billable
  5. ABC AB123 30 Billable
  6. PQR PQ123 20 Billable
  7. PQR PQ123 30 Billable
  8. 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#

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

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

相关问题