Арифметическая операция с операторами SELECT в Impala

Я пишу запрос, который должен ГРУППИРОВАТЬ по типу строки и делить значение на общее количество, чтобы узнать% от общего числа в 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: подзапросы не поддерживаются в списке выбора. Может ли кто-нибудь посоветовать, как мне подойти к этой проблеме?


person Alex Rubl Patsula    schedule 25.11.2015    source источник
comment
Я не понимаю, действительно ли вы извлекаете данные из одной и той же таблицы: sum(performance) / (SELECT sum(performance) FROM table) FROM table   -  person genespos    schedule 25.11.2015


Ответы (1)


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

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
person genespos    schedule 25.11.2015