如何解决计算SQL查询中的内联百分比
|SELECT User,COUNT(*) as count FROM Tests WHERE Release = \'1.0\' GROUP by User;
上面的查询将返回不同的数字,但是,我想将计数转换为相对于记录总数的百分比。考虑WHERE子句的记录总数。
解决方法
SELECT R1.user,COUNT(*)/R2.COUNT_ALL AS Expr1
FROM Releases R1,(SELECT COUNT(*) As COUNT_ALL FROM Releases WHERE Release = \'1.0\') R2
WHERE R1.Release = \'1.0\'
GROUP BY R1.user,R2.COUNT_ALL
, 这是使用单个SELECT的另一种方法:
SELECT
Tests.User,Count(IIf([Tests].[Release]=\'1.0\',1,Null)) / Count(*) AS Percentage
FROM
Tests
GROUP BY
Tests.User
与先前建议的方法不同,无论好坏,此方法将为在Release为“ 1.0”的测试中没有记录的用户返回记录。如果您不想要这些记录,则可以添加HAVING子句以消除它们。
希望这可以帮助。
, 像Brian \'s的答案,但仅使用标准SQL而不是MS Access。 (如果我有0
,也可以用COUNT
代替SUM
和NULL
。)
SELECT
Tests.User,Sum(CASE WHEN Release=\'1.0\' THEN 1 ELSE 0 END) / Count(*) AS Percentage
FROM
Tests
GROUP BY
Tests.User
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。