Meu palpite é que você realmente não deseja
GROUP BY
algum_produto. A resposta para: "Existe uma maneira de
GROUP BY
um alias de coluna como some_product neste caso, ou preciso colocar isso em uma subconsulta e agrupar isso?" é: Você não pode GROUP BY
um alias de coluna. O
SELECT
cláusula, onde os aliases de coluna são atribuídos, não é processada até depois do GROUP BY
cláusula. Uma visualização embutida ou expressão de tabela comum (CTE) pode ser usada para disponibilizar os resultados para agrupamento. Visualização em linha:
select ...
from (select ... , CASE WHEN col1 > col2 THEN SUM(col3*col4) ELSE 0 END AS some_product
from ...
group by col1, col2 ... ) T
group by some_product ...
CTE:
with T as (select ... , CASE WHEN col1 > col2 THEN SUM(col3*col4) ELSE 0 END AS some_product
from ...
group by col1, col2 ... )
select ...
from T
group by some_product ...