Mit gæt er, at du ikke rigtig ønsker at GROUP BY
et_produkt.
svaret til: "Er der en måde at GROUP BY
et kolonnealias såsom some_product i dette tilfælde, eller skal jeg sætte dette i en underforespørgsel og gruppe på det?" er: Du kan ikke GROUP BY
et kolonnealias.
SELECT
klausul, hvor kolonnealiaser er tildelt, behandles ikke før efter GROUP BY
klausul. En indlejret visning eller fælles tabeludtryk (CTE) kunne bruges til at gøre resultaterne tilgængelige for gruppering.
Indlejret visning:
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 ...