3
我有一个非常基本的SQL查询查询,它正在对从分组结果集返回的记录总数进行计算。SQL Round Number Over()
SELECT vco.OutcomeName,
vco.VersionCompareOutcomeID,
COUNT(t.OutcomeName) AS Total,
ROUND(COUNT(*) * 100.0/sum(count(*)), 1) over() AS Percentage
FROM map.VersionCompareOutcome AS vco
LEFT JOIN @temp AS t
ON vco.VersionCompareOutcomeID = t.VersionCompareOutcomeID
GROUP BY vco.OutcomeName, vco.VersionCompareOutcomeID
当我尝试并使用round
功能,我收到以下错误:The function 'ROUND' is not a valid windowing function, and cannot be used with the OVER clause.
没有round
功能,我得到的百分比,但其不圆像我想要的目的。
我希望的结果是小数点后两位:例如87.95%
。
我试图整合这一点,但我正在遇到一个错误'被零除错误.'。可能有一个情况是我的总数是'0',所以我需要显示'0%'作为百分比。这在我的例子中可以解释吗? – SBB
@SBB - 尝试更新后的查询。 – 2017-10-16 18:12:48
奇怪的是,结果总是说数字记录是'100%' – SBB