2

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

請求可能または請求不可を取得することはできますが、一緒に取得することはできません。

誰かがこのシナリオを進める方法をアドバイスできますか?

よろしく、

ラージ

4

2 に答える 2

2

Group byは、必要なものを提供する必要があります。

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;
于 2013-03-25T12:00:32.783 に答える
0

トピックから外れている可能性がありますが、以下はMysqlで機能します。

SELECT a.custername、a.Prjtid、a.billable_hours AS Billable、b.not_billable_hours AS NonBillable FROM(SELECT custername、Prjtid、sum(Hours)AS billable_hours FROM table WHERE Billable_Status ='Billable' GROUP BY custername)AS a、(SELECT custername、Prjtid、sum(Hours)AS not_billable_hours FROM table WHERE status ='Non-Billable' GROUP BY custername)AS b WHERE a.custername = b.custername;

于 2013-03-27T07:34:39.337 に答える