总结同一SQL表上的两个条件

Eri*_* J. 4 sql aggregation

给定一个SQL表

Transactions
  ID            INT
  COMPANY_ID    INT
  STATUS        INT
Run Code Online (Sandbox Code Playgroud)

where STATUS IN (0,1)表示一个免费交易,并STATUS IN (2,3)指示一个可计费交易,简单(我希望)ANSI SQL语句将告诉我,可COMPANY_ID计费交易的数量,不可计费交易及其比率?

如果不是特定的陈述,正确方向的概念刺激是好的.我的第一次尝试是使用WHERE两个状态组的子句自行加入表格,但我仍然坚持如何获得一个代表每个不同计数的列,以便我可以计算比率.

这在概念上与汇总数据非常相似,但我不确定如何将这个问题扩展到这个问题.

Wil*_*l P 5

这是一个开始,我认为这是沿着正确的方向......唯一剩下的就是增加比率.

SELECT
    COMPANY_ID,
    NON_BILLABLE = SUM(CASE STATUS WHEN IN (0, 1) THEN 1 ELSE 0 END),
    BILLABLE = SUM(CASE STATUS WHEN IN (2, 3) THEN 1 ELSE 0 END)
FROM TRANSACTIONS
GROUP BY COMPANY_ID
Run Code Online (Sandbox Code Playgroud)

编辑:符合标准.

SELECT
    COMPANY_ID,
    SUM(CASE STATUS WHEN IN (0, 1) THEN 1 ELSE 0 END) AS NON_BILLABLE,
    SUM(CASE STATUS WHEN IN (2, 3) THEN 1 ELSE 0 END) AS BILLABLE
FROM TRANSACTIONS
GROUP BY COMPANY_ID
Run Code Online (Sandbox Code Playgroud)