Sql server 2012 T-SQL Server 2012将分组计数除以分组帐户总数

Sql server 2012 T-SQL Server 2012将分组计数除以分组帐户总数,sql-server-2012,Sql Server 2012,我试图获得每行的百分比结果,其中该行的分组计数除以所有行的总计数,如示例所示: 因此,我以SUM列作为气球行占总数的百分比结束 SELECT DATEPART(YEAR, Balloons) AS [Year], COUNT(Balloons) AS [Balloons], SUM = (SELECT COUNT(Balloons) FROM TABLE WHERE col2 BETWEEN '20000101' AND '20160101

我试图获得每行的百分比结果,其中该行的分组计数除以所有行的总计数,如示例所示:

因此,我以SUM列作为气球行占总数的百分比结束

SELECT  DATEPART(YEAR, Balloons) AS [Year],
    COUNT(Balloons) AS [Balloons],
    SUM = (SELECT COUNT(Balloons)
        FROM TABLE 
        WHERE col2 BETWEEN  '20000101' AND '20160101'
    ) 
FROM TABLE
WHERE col2 BETWEEN  '20000101' AND '20160101'
GROUP BY DATEPART(YEAR, Balloons) 
ORDER BY COUNT(Balloons)
:

SELECT  [Year], [Balloons], ROUND(CAST([Balloons] AS REAL) / CAST([SUM] AS real) * 100 ,3)  AS [%] FROM (

SELECT      
             DATEPART(YEAR, Balloons) AS [Year]
            ,COUNT(Balloons) AS [Balloons]
            ,SUM = (SELECT COUNT(Balloons) FROM TABLE WHERE col2 BETWEEN '20000101' AND '20160101') 

FROM    TABLE

WHERE col2 BETWEEN '20000101' AND '20160101' 

GROUP BY DATEPART(YEAR, Balloons) 

) AS d
GROUP BY [Balloons], [Year], [SUM]

ORDER BY [Year]
Results

    Year   Balloons  %
1   2010   2         0.009
2   2011   1         0.005    
3   2012   1815      8.613
4   2013   5022      23.831
5   2014   7742      36.739
6   2015   6491      30.802