1
ハイブテーブルのすべての列の合計をとることは可能です。私は合計ハイブのすべての列の合計を取る方法
表 COL COL_1 col_2 col_3
Ouptut 合計(COL)、合計(COL_1)、合計(col_2)合計(col_3)
ハイブテーブルのすべての列の合計をとることは可能です。私は合計ハイブのすべての列の合計を取る方法
表 COL COL_1 col_2 col_3
Ouptut 合計(COL)、合計(COL_1)、合計(col_2)合計(col_3)
create table mytable (i int,j int,k int);
insert into mytable values (1,2,3),(4,5,6),(7,8,9);
select pos+1 as col
,sum (val) as sum_col
from mytable t
lateral view posexplode(array(*)) pe
group by pos
;
+-----+---------+
| col | sum_col |
+-----+---------+
| 1 | 12 |
| 2 | 15 |
| 3 | 18 |
+-----+---------+
または(だから、神は私を助けて)
select map_values
(
str_to_map
(
concat_ws
(
','
,sort_array
(
collect_list
(
concat_ws
(
':'
,lpad(cast(pos as string),10,'0')
,cast(sum_val as string)
)
)
)
)
)
) as sum_col_array
from (select pos
,sum (val) as sum_val
from mytable t
lateral view posexplode(array(*)) pe
group by pos
) t
;
+------------------+
| sum_col_array |
+------------------+
| ["12","15","18"] |
+------------------+
問題は、私は、単一の方法で、すべての列をオフ和の代わりに、それぞれの時間の和(COL)を書いて、合計(COL_1取る必要 –
明確ではありません) – user2672739
それを書いているだけで何が問題になっていますか?あなたは1000のテーブルのためにそれを必要としますか?結果はどうしていますか? –