运用SQL进行除法运算
最编程
2024-08-12 07:49:48
...
select直接进行除法运算会产生的问题
select
count(user_id) num1
,count(user_new_id) num2
,count(user_id)/count(user_new_id) rate
from
tb1
结果说明:
- 再num1和num2都非零的情况下,rate结果为0
- 因为count() 表示计数,结果是long,rate结果也是为long,但是如果比值小于1,就会显示0
- 解决方法:
- 先求解出num1和num2,然后再外面嵌套进行查询
- 更改count()的结果类型为double
select
num1/num2
from (
select
count(user_id) num1
,count(user_new_id) num2
from
tb1)
select
count(user_id) num1
,count(user_new_id) num2
,cast(count(user_id) as double)/cast(count(user_new_id) as double) rate
from
tb1