欢迎您访问 最编程 本站为您分享编程语言代码,编程技术文章!
您现在的位置是: 首页

运用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

结果说明:

  1. 再num1和num2都非零的情况下,rate结果为0
  2. 因为count() 表示计数,结果是long,rate结果也是为long,但是如果比值小于1,就会显示0
  3. 解决方法:
    1. 先求解出num1和num2,然后再外面嵌套进行查询
    2. 更改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