2017-04-27 309 views
0

我有一個查詢如下。 Select split(Salary, '\|') as salaryEmp from tableA它工作正常,並給我一個數組字符串爲["1089","1078"]HIVE查詢數組總和

我想要添加此數組字符串的值。我無法將其轉換爲整數並對它們進行求和。可以爲此提出一個合適的方法。

+0

你是怎麼到工資(?!)是作爲一個分隔字符串的情況嗎? –

+0

''\ |''是錯的,應該是''\\ |'' –

回答

0

使用explode() + lateral view

select sum(cast(salary as int)) sum_salry from 
(
select split('1089|1078', '\\|') SalaryArray 
) s lateral view explode (SalaryArray) a as Salary; 

OK 
2167 
+0

方式太複雜了......可以用單個'SELECT'完成 –

+0

@Dudu Markovitz謝謝,簡體 – leftjoin

0
select sum(e.col) as sum_Salary 
from salaryEmp lateral view explode (split(Salary,'\\|')) e 

+------------+ 
| sum_salary | 
+------------+ 
|  2167 | 
+------------+