繁体   English   中英

SQL 计算百分比

[英]SQL Calculate percentage

我在一个表中有四列。

+------+-------+------------+---------------+
| Year | Month | OrderCount | SaleCount2015 |
+------+-------+------------+---------------+
| 2015 |   1   |    876     |     453       |
| 2015 |   2   |    764     |     548       |
| 2015 |   3   |    951     |     632       |
| 2015 |   4   |    ...     |     ...       |
+------+-------+------------+---------------+

我想计算每个月的 SalePercentage,但结果返回 0。 我使用以下 SQL 查询。

Select Year, 
       Month, 
       OrderCount, 
       SaleCount, 
       SaleCount/OrderCount AS SalePercentage
From TableName

谁能告诉我这个查询的问题? 谢谢。

SELECT Year, Month, OrderCount, SaleCount,
    CAST (SaleCount AS FLOAT) / CAST(OrderCount AS FLOAT) AS SalePercentage
FROM TableName

您使用的是整数除法,因此5/10将是0 ,但5.0/10.0将是0.5

如果您使用的是sql server

如果你除以整数,那么你得到的结果是整数;

将一列或两列值转换为floatdouble

cast(SaleCount as float) /OrderCount AS SalePercentage

或者

(SaleCount*1.0)/OrderCount AS SalePercentage

最好检查OrderCount是否zero

case when OrderCount = 0 then 0
else (SaleCount*1.0)/OrderCount end AS SalePercentage 

演示sqlfiddle

使用Money类型进行财务计算...

SELECT Year, Month, OrderCount, SaleCount, IIF(OrderCount  = 0, 0, CAST(SaleCount AS MONEY)/CAST(OrderCount AS MONEY)) AS SalePercentage FROM TableName

无论您使用哪个数据库。 您的结果显示的不是百分比,而是一小部分。 如果您将其乘以 100,它将得到解决:

Select Year, 
       Month, 
       OrderCount, 
       SaleCount, 
       (SaleCount*100)/OrderCount AS SalePercentage
From TableName

暂无
暂无

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

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