私の推測では、あなたは本当にGROUP BY
をしたくないと思います some_product。
回答: 「GROUP BY
する方法はありますか この場合、some_productなどの列エイリアス、またはこれをサブクエリに入れてグループ化する必要がありますか? " is: GROUP BY
はできません 列エイリアス。
SELECT
列エイリアスが割り当てられている句は、GROUP BY
が完了するまで処理されません。 句。インラインビューまたは共通テーブル式(CTE)を使用して、結果をグループ化できるようにすることができます。
インラインビュー:
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 ...