繁体   English   中英

使用 SQL 计算百分比

[英]Calculate percentage using 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/40 ,而不是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, month, year
order by year desc, month desc, supplierid

笔记:

  • 您的原始代码不是一个有效的聚合查询:它缺少group by子句

  • 您的样本数据表明您希望每个供应商与月份和年份总数的比率,而您的查询(尝试)计算总体比率; 我也修好了

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM