如何解决使用SQL计算百分比
我试图从下表中找到如何计算百分比
从上表中,我希望获得如下百分比的数据。但是,我下面的SQL语句将所有百分比值都返回0。请告知我错过的内容。谢谢
Select SupplierID,ProductID,Month,Year,Count(SupplierID) AS TotalSales,(count(SupplierID)* 100/(Select Count (*) From ProductOrder)) AS Percentage
From ProductOrder
Order by Year DESC,Month DESC
解决方法
那是整数除法。除法的两个操作数都是整数,因此结果也以整数形式给出。 3/4
是0
,而不是0.75
。要解决此问题,只需将参数之一转换为小数。
我还建议使用窗口函数而不是子查询:
select supplierid,month,year,count(*) as totalsales,100.0 * count(*) / sum(count(*)) over(partition by month,year) as percentage
from productorder
group by supplierid,year
order by year desc,month desc,supplierid
注意:
-
您的原始代码不是开头的有效聚合查询:缺少
group by
子句 -
您的样本数据表明,您希望每个供应商的比率与月份和年份的总数之比,而您的查询(旨在)计算总比率;我也解决了
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。