首页 > 解决方案 > 使用此查询查找百分比

问题描述

问题是: 查询 4. 编写查询以列出产品名称和订购该产品的客户的百分比。使用百分比符号格式化百分比。

到目前为止我所拥有的:

SELECT productName, CONCAT(ROUND(Products.productCode/(SELECT SUM(customerNumber) FROM Customers)*100, 2), '%') AS CustomerPercentage FROM Customers
JOIN Orders ON Orders.customerNumber = Customers.customerNumber
JOIN OrderDetails ON OrderDetails.orderNumber = Orders.orderNumber
JOIN Products ON Products.productCode = OrderDetails.productCode
GROUP BY Products.productCode;

当我这样做时,所有值都为 0%。我应该怎么做才能防止此错误不断发生?

标签: sqlpercentage

解决方案


您正在使用整数除法。

您需要在计算中使用十进制值(具有更高的优先级)来强制将隐式强制转换为十进制。

尝试

CONCAT(ROUND(Products.productCode/(SELECT SUM(customerNumber) FROM Customers)*100.0, 2), '%')

推荐阅读