AKI*_*WEB 11 sql postgresql percentage postgresql-9.2
我试图运行以下查询,这导致我 postgres error: division by zero
select
request_count,
response_count,
(response_count*100) / (request_count+response_count) AS proportion
from total_dummy_table;
Run Code Online (Sandbox Code Playgroud)
如何避免和解决division by zero错误?
尝试使用以下查询修复,但获得与上面相同的结果
SELECT
request_count,
response_count,
(response_count*100) / (request_count) AS proportion
FROM
total_dummy_table
ORDER BY
(response_count*100) /(CASE request_count WHEN 0 Then NULL ELSE request_count END) DESC NULLS FIRST
Run Code Online (Sandbox Code Playgroud)
请告诉我我在哪里做错了,或者我该如何解决这个问题.谢谢!
结果期望:
查询应该返回如下所示的内容:
Request_count | Response_count | Proportion
1603423 | 585706 | 36.52
Run Code Online (Sandbox Code Playgroud)
快速注释:表total_dummy_table没有列名proportion,该列名是结果的加法,其中计算了比例.
die*_*eke 23
使用NULLIF
something/NULLIF(column_name,0)
Run Code Online (Sandbox Code Playgroud)
NULLIF(col,val) 是简写
CASE WHEN col=val THEN NULL ELSE col
Run Code Online (Sandbox Code Playgroud)
Hou*_*ari 10
select request_count,response_count,
case
when
request_count+response_count = 0 then 0
else
(response_count*100) / (request_count+response_count)
end AS proportion
from total_dummy_table;
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
18075 次 |
| 最近记录: |