2015-11-25 3 views
0

Я пишу запрос, который должен иметь значение GROUP BY по типу строки и делить значение на общую сумму, чтобы узнать% от общего числа в IMPALA. Ex .:Арифметическая операция с операторами SELECT в Impala

Name       performance 
something type1 something   15 
something type1 something   18 
something type2 something   23 
something something something  345 
something type2 something   23 

SELECT 
CASE WHEN name like '%type1%' then 'type 1' 
    WHEN name like '%type2%' then 'type2' 
    ELSE 'other' END as type 
,sum(performance)/(SELECT sum(performance) FROM table) 
FROM table 
GROUP BY type 

Это дает мне ошибку AnalysisException: подзапросы не поддерживаются в списке выбора. Может ли кто-нибудь посоветовать, как мне подойти к этой проблеме?

+1

Я не понимаю, если вы действительно извлекая из одной таблицы: 'сумма (производительность)/(SELECT SUM (производительность) из-за стола) ОТ table' – genespos

ответ

0

Я думаю, что это нужно только "()"

SELECT 
(CASE WHEN name like '%type1%' then 'type 1' 
    WHEN name like '%type2%' then 'type2' 
    Else 'other' END) as type 
,sum(performance)/(SELECT sum(performance) FROM table) 
FROM Table 
GROUP BY type