Ich vermute, dass Sie nicht wirklich GROUP BY
wollen irgendein_produkt.
Die Antwort auf: "Gibt es eine Möglichkeit GROUP BY
B. in diesem Fall ein Spaltenalias wie some_product, oder muss ich dies in eine Unterabfrage stellen und darauf gruppieren?" ist: Sie können nicht GROUP BY
verwenden ein Spaltenalias.
Die SELECT
-Klausel, in der Spaltenaliase zugewiesen werden, wird erst nach GROUP BY
verarbeitet Klausel. Eine Inline-Ansicht oder ein allgemeiner Tabellenausdruck (CTE) könnte verwendet werden, um die Ergebnisse für die Gruppierung verfügbar zu machen.
Inline-Ansicht:
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 ...