sql - PostgreSQL 中的方程只返回 0
问题描述
所以我有这些查询来获得低于 95 的停机时间百分比,但这个查询只返回 0 的问题是我不明白为什么,因为我输入的数据具有值。请参阅以下查询:
SELECT ROUND(
(
(SELECT COUNT(*) AS terminal_down_count FROM dashboard.availability WHERE availability_percentage < 95 AND availability_date = '2020-04-05'
) / t.terminal_count
) * 100, 9)
FROM(
SELECT COUNT(*) AS terminal_count
FROM dashboard.availability
WHERE availability_date = '2020-04-05'
)t
如果我突出显示查询SELECT COUNT(*) AS terminal_down_count FROM dashboard.availability WHERE availability_percentage < 95 AND availability_date = '2020-04-05'
这将返回:
如果我突出显示此查询SELECT COUNT(*) AS terminal_count FROM dashboard.availability WHERE availability_date = '2020-04-05
,它将返回此结果:
所以基本上我试图在等式中返回的是这样的:
(146 / 4,272) * 100 = 3.42
但它上面的整体查询只输出0。
解决方案
尝试以下,转换terminal_down_count
为浮动。所以乘以1.0
如下所示或强制转换为浮动。这是示例。
SELECT ROUND(
(
(SELECT
COUNT(*) AS terminal_down_count
FROM dashboard.availability
WHERE availability_percentage < 95
AND availability_date = '2020-04-05'
)*1.0 / t.terminal_count
) * 100, 9)
FROM(
SELECT COUNT(*) AS terminal_count
FROM dashboard.availability
WHERE availability_date = '2020-04-05'
)t
推荐阅读
- powershell - Powershell - 将目录和文件从源文件夹复制到目标文件夹
- server - 客户端程序通过蓝牙接收服务器发送的值
- java - 什么时候在 Java 中初始化静态字段?
- php - 调度 Windows 作业以运行 PHP 脚本失败
- python - 安装 tableauserverclient 后出现 ModuleNotFoundError
- flutter - 按下按钮时颤动更新第二个父级
- c++ - 我可以使用分配器对象来释放另一个分配器分配的内存吗?
- python - Python 使用正则表达式搜索 CSV 并将结果导出到不同的 CSV
- azure - 每天从 Azure 外部检索文件的最佳流程
- c# - 使用 JSON 数据向 websocket 服务器发送请求