私の質問summarizing-two-conditions-on-the-same-sql-tableに続いて、単純に 1 つの SUM(...) 列を 2 番目の SUM(...) 列で割った RATIO 列を追加しました。
SELECT
COMPANY_ID,
SUM(CASE WHEN STATUS IN (0, 1) THEN 1 ELSE 0 END) AS NON_BILLABLE,
SUM(CASE WHEN STATUS IN (2, 3) THEN 1 ELSE 0 END) AS BILLABLE
SUM(NON_BILLABLE)/SUM(BILLABLE) AS RATIO
FROM TRANSACTIONS
GROUP BY COMPANY_ID
RATIO をそのように定義するのはきれいに見えますが、明らかに SQL によって禁止されています。
クエリを機能させるために、NON_BILLABLE と BILLABLE の CASE ステートメントをコピーしました。
SELECT
COMPANY_ID,
SUM(CASE WHEN STATUS IN (0, 1) THEN 1 ELSE 0 END) AS NON_BILLABLE,
SUM(CASE WHEN STATUS IN (2, 3) THEN 1 ELSE 0 END) AS BILLABLE
SUM(CASE WHEN STATUS IN (0, 1) THEN 1 ELSE 0 END)/SUM(CASE WHEN STATUS IN (2, 3) THEN 1 ELSE 0 END) AS RATIO
FROM TRANSACTIONS
GROUP BY COMPANY_ID
このクエリを作成するための、よりクリーンな (冗長でない) 方法はありますか?