2016-09-21 11 views
1

最初に最初にデータを取得できます。私の目的は、クエリ結果の可読性を向上させることです。私はそれが可能かどうかを探しています。クエリ結果の列としてカウント行を表示する

私はデバイスによって供給されるテーブルを持っています。私は2つの同一の列でグループ化された各時間に送信されたデータの数を取得したい。 1つのデバイスタイプを決定するには、これらの2つの列をグループ化する必要があります。私はすべてのデバイスによって送信された一つの特定のDATA_NAMEを使用しよう、と私は毎時間に送信されたデータを与える。このDATA_NAMEのカウントを取得してい

| identifier-1 | identifier-2 | day  | hour | data_name | data_value | 
|--------------|--------------|------------|------|-----------|------------| 
| type_1  | subType_4 | 2016-08-25 | 0 | Key-30 | 4342  | 
|--------------|--------------|------------|------|-----------|------------| 
| type_3  | subType_2 | 2016-08-25 | 0 | Key-50 | 96   | 
|--------------|--------------|------------|------|-----------|------------| 
| type_6  | subType_2 | 2016-08-25 | 1 | Key-44 | 324  | 
|--------------|--------------|------------|------|-----------|------------| 
| type_2  | subType_1 | 2016-08-25 | 1 | Key-26 | 225  | 
|--------------|--------------|------------|------|-----------|------------| 

:よう 表構造です。識別子-1、識別子-2、曜日と時間で24行の番号をグループ化することができます。ただし、各デバイスタイプごとに繰り返されます。私はこのような結果を表示したい

| identifier-1 | identifier-2 | day  | hour | count | 
|--------------|--------------|------------|------|-------| 
| type_6  | subType_2 | 2016-08-25 | 0 | 340 | 
|--------------|--------------|------------|------|-------| 
| type_6  | subType_2 | 2016-08-25 | 1 | 340 | 
|--------------|--------------|------------|------|-------| 
|--------------|--------------|------------|------|-------| 
| type_1  | subType_4 | 2016-08-25 | 0 | 32 | 
|--------------|--------------|------------|------|-------| 
| type_1  | subType_4 | 2016-08-25 | 1 | 30 | 
|--------------|--------------|------------|------|-------| 
|--------------|--------------|------------|------|-------| 
|--------------|--------------|------------|------|-------| 

:SQLで

| identifier-1 | identifier-2 | day  | count_of_0 | count_of_1 | 
|--------------|--------------|------------|------------|------------| 
| type_6  | subType_2 | 2016-08-25 | 340  | 340  | 
|--------------|--------------|------------|------------|------------| 
| type_1  | subType_4 | 2016-08-25 | 32   | 30  | 
|--------------|--------------|------------|------------|------------| 
|--------------|--------------|------------|------------|------------| 

、結果にサブクエリと列を取得することが可能であるが、それはハイブでは不可能です。私はそれが相関サブクエリと呼ばれると思います。

Hive column as a subquery select この質問の回答は私のためには機能しませんでした。

ご意見やご提案はありますか?あなたは、この使用条件の集約を行うことができます

+0

は私の質問を編集いただきありがとうございます:) –

答えて

0

select identifier1, identifier2, day, 
     sum(case when hour = 0 then data_value else 0 end) as cnt_0, 
     sum(case when hour = 1 then data_value else 0 end) as cnt_1 
from t 
where data_name = ?? 
group by identifier1, identifier2, day 
order by identifier1, identifier2, day 
+1

これは私が望んでいた正確なビューを与えました。再度、感謝します :-) –

関連する問題