[英]Calculate percentage using SQL
那是整数除法。 除法的两个操作数都是整数,因此结果也以整数形式给出; 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, month, year
order by year desc, month desc, supplierid
笔记:
您的原始代码不是一个有效的聚合查询:它缺少group by
子句
您的样本数据表明您希望每个供应商与月份和年份总数的比率,而您的查询(尝试)计算总体比率; 我也修好了
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.