我想把两个问题结合起来
SELECT COUNT(*) FROM abc;
SELECT COUNT(Status) FROM ABC WHERE Status='Active';然后计算百分比(将第二个查询除以第一个查询)。我想在一个查询中实现这一点。到目前为止,我尝试的是:
SELECT COUNT(*) AS A FROM abc
UNION
SELECT COUNT(Status) AS B FROM ABC WHERE Status='Active';
UNION
SELECT(COUNT(Status)*100/SELECT COUNT(*) FROM abc)) AS %ofAB FROM abc WHERE Status='Active'我得到的是:
A
--
31
36
86,11111111我想要的:
A | B | %ofAB
---------------------
36 | 31 | 86,1111111% 发布于 2015-12-23 18:45:26
这应该给你你想要的:
SELECT
COUNT(*) AS TotalCount,
SUM(IIF(Status = 'Active', 1, 0)) AS ActiveCount,
ROUND((SUM(IIF(Status = 'Active', 1, 0)) * 100/ COUNT(*)),2) AS PctActive
FROM
Abc编辑:没有注意到这是用于访问的。我不知道CAST在Access中是否可用,所以您可能需要使用一个等价的函数来确保整数不会简单地产生1或0。Access可能会自动将一个除数转换为十进制,但在Server中并非如此。
https://stackoverflow.com/questions/34441779
复制相似问题