sql - 使用此查询查找百分比
问题描述
问题是: 查询 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%。我应该怎么做才能防止此错误不断发生?
解决方案
您正在使用整数除法。
您需要在计算中使用十进制值(具有更高的优先级)来强制将隐式强制转换为十进制。
尝试
CONCAT(ROUND(Products.productCode/(SELECT SUM(customerNumber) FROM Customers)*100.0, 2), '%')
推荐阅读
- java - 我应该添加什么才能打印代码而不是地址?
- python - 检查位置的坐标是否在边界内
- ios - 使用 NetworkExtension 阻止 URL
- microsoft-graph-api - 尝试获取 singleValueExtendedProperties 时收到 400 和 500
- intellij-idea - Intellij IDEA 控制台中的运行时
- typescript - Typescript:这种用于键入函数的键入方法是什么?
- python - tkinter 框架没有几何图形 python tkinter
- django - Django QuerySets - 相关模型
- git - git合并重复提交
- c++ - 如何使用 c++ 中的构造函数初始化 unique_ptrs 的 2d 向量?