Domyślam się, że tak naprawdę nie chcesz GROUP BY
jakiś_produkt.
Odpowiedź na: „Czy istnieje sposób na GROUP BY
alias kolumny, taki jak w tym przypadku some_product, czy też muszę umieścić to w podzapytaniu i pogrupować na nim?” to: Nie możesz GROUP BY
alias kolumny.
SELECT
klauzula, w której przypisane są aliasy kolumn, jest przetwarzana dopiero po GROUP BY
klauzula. W celu udostępnienia wyników do grupowania można użyć wbudowanego widoku lub wspólnego wyrażenia tabelowego (CTE).
Widok wbudowany:
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 ...