[SQL] Dica Rápida – Erro Group Function is Nested

Passei rapidinho para deixar uma dica. Elaborei uma consulta SQL para extração de alguns dados da tabela e na hora de executar apareceu um erro estranho “Group Functon is Nested“, fiquei me batendo com o erro por um tempo até perceber do que se trata. Na minha consulta criei um sumarização de resultado aninhado (nested – 😛 ), ou seja, mandei Somar uma condição que continha um “count”.

Veja o exemplo bem simples abaixo (conceitual apenas, o código em si está horrível 😀 ), para quem, como eu não sabia, o banco de dados que utilizei (HANA) não permite este tipo de operação, pelo que pesquisei nenhum permite. Como solução, alterei a SQL para retirar a fórmula aninhada. Fica a dica para os desavisados como eu. 🙂

Código com Erro:

 
SELECT
    classe,
    SUM(CASE WHEN tp = 'A' THEN COUNT(tp) ELSE 0 END) as TpA,
    SUM(CASE WHEN tp = 'B' THEN COUNT(tp) ELSE 0 END) as TpB
FROM Tabela
GROUP BY classe

Código após correção:

 
SELECT
    classe,
    SUM(A) as TpA,
    SUM(B) as TpB
FROM 
    (SELECT 
         id, 
         classe,
         (CASE WHEN tp = 'A' THEN 1 ELSE 0 END) as A,
         (CASE WHEN tp = 'B' THEN 1 ELSE 0 END) as B,
     FROM Tabela
GROUP BY classe
Compartilhe este post:

Deixe uma resposta

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *