给定一个 SQL 表
Transactions
ID INT
COMPANY_ID INT
STATUS INT
where STATUS IN (0,1)
表示免费交易并且STATUS IN (2,3)
表示可计费交易,简单的(我希望)ANSI SQL 语句将向我展示,每COMPANY_ID
、可计费交易、不可计费交易的数量以及它们的比率?
如果不是具体的陈述,那么朝正确方向的概念性刺激也可以。我的第一次尝试是在桌子上自加入WHERE
两个状态组的子句,但我坚持如何获取代表每个不同计数的列,以便我可以计算比率。
这在概念上非常类似于汇总聚合数据 https://stackoverflow.com/questions/248990/summarize-aggregated-data但我不知道如何将这个问题扩展到这个问题。
这是一个开始,我认为这是正确的……剩下的唯一的事情就是添加比率。
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
编辑:为了符合标准。
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
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)