2013-10-11 108 views
3

如何获得计数百分比?在尝试根据行数计算百分比时,我得到的值都是相同的。我想每个属性的百分比取决于COUNT的数量。因此,如果我计算30次属性,我希望将其更改为百分比,具体取决于行数和其他值。计数百分比SQL

SELECT Attribute 
     , COUNT(Attribute)/COUNT(*) * 100 AS TopIssues 
FROM Audits 
     WHERE MONTH(TransActionDate) = MONTH(GETDATE()) 
GROUP BY Attribute 
ORDER BY COUNT(Attribute) DESC  

回答

3

在SQL Server,你可以使用:

SELECT Attribute 
     , COUNT(Attribute)*1.0/SUM(COUNT(*)) OVER() * 100 AS TopIssues 
FROM Audits 
WHERE MONTH(TransActionDate) = MONTH(GETDATE()) 
GROUP BY Attribute 
ORDER BY COUNT(Attribute) DESC 
0

你也可以做这样的事情:

SELECT Attribute 
     , COUNT(Attribute)*1.0/ACount AS TopIssues 
FROM Audits 
CROSS JOIN (SELECT COUNT(1) ACount FROM Audits) ACount 
WHERE MONTH(TransActionDate) = MONTH(GETDATE()) 
GROUP BY Attribute, ACount 
ORDER BY COUNT(Attribute) DESC