当前位置:首页 » 编程语言 » sql结果相除
扩展阅读
webinf下怎么引入js 2023-08-31 21:54:13
堡垒机怎么打开web 2023-08-31 21:54:11

sql结果相除

发布时间: 2023-05-19 18:07:05

1. sql语句的写法——把两个数相除(Oracle)

select (select count(*) as a from...)/(select count(*) as b from...
) from al

2. SQLServer中SQL语句如何对两个group By后的查询结果进行相除

你错误的问题点在于两个子查询之间没有任何关联,不能直接除。首先我们要建立关联关系。再除
select a.值1,(case when isnull(b.值2,0)=0 then 0 else a.值1/b.值2) ---记得除数为0处理
from (select 值2,SUM(值1) AS 值1 from 表1 group by 值2) a
innor join (看情况使用innor join 还是 full 还是Left)
(select 值2,sum(值1) AS 值1 from 表2 group by 值2) b on A.值2=b.值2

3. SQL如何做除法

这样:

select

t.[origin-destination],t.[SH/LANE/MOT] /(select count(1) from ['TMS$'] )ASPERCENTAGE
FROM (代码1) t

group by [origin-destination],t.[SH/LANE/MOT]

having t.[SH/LANE/MOT] /count(*) <= 0.01

注:两个count都是int,相除会没有小数部分,所以应该都给转成带小数的数。

cast as numeric(10,4) 。

(3)sql结果相除扩展阅读:

SQL中除法运算的实现

R(X,Y)÷S(Y,Z)的运算用结构化语言SQL 语句可表达为下列形式:

select distinct R.X from R R1

where not exists

(

select S.Y from S

where not exists

(

select * from R R2

where R2.X=R1.X and R2.Y=S.Y

)

)

4. sql统计两个表数据然后相除,怎么写

要相除的是什么?某个字段的统计还是数据量统计还是其他的?

selectt1.a/t2.bfrom(
(selectcount(1)afromtable1)t1,
(selectcount(1)bfromtable2)t2
);

5. 两个sql语句查询出来的值怎么相除

同意一楼的,但是如果是来自同一张表的话还可以优化下,语句如下
Select sum(a) / sum(b)
From XX

希望能帮到你

6. sql语句中两个数相除

整数除以整数=整数改为:select 1.0 * (select count(RecordID) from RegisterRecord where datediff(yy,WBirthday,getdate())>26) /(select count(RecordID) from RegisterRecord )*100 As 比例(%)
from RegisterRecord
还有就是数据库字段的别名写法不是那样写的

7. sql server 2个查询结果相除

declare @a float
declare @b float
select @a= count(*) from table1
select @b = count(*) from table2
select @a/@b

楼上的方法,如果只是COUNT条数,没有小数点啊。。。 要转格式:
select a.a/b.b from
(select cast(count(*)as float) as a from table1) as a,
(select cast(count(*)as float) as b from table2) as b

8. sql server 简单的除法运算

用一个SQL求出来就可以了
select sum(case s when b the 1 else 0 end)/sum(case s when b then 0 else 1 end ) as result from t
但要判断一下除数是否为0的情况,就要写成这样:
select case when sum(case s when b then 0 else 1 end )=0 then 0 else sum(case s when b the 1 else 0 end)/sum(case s when b then 0 else 1 end ) end as result from t
如果除数是0,结果返回0

9. SQL 请问能否实现查询出的两列数据 分别相除的功能


就拿access做个示范吧

SELECT V2/V1 AS 两列相除 FROM TB1;

10. sql相除的问题

SELECT field1/field2 FROM TB;
当 field1的数值 > field2的数值时,除法得出的结果是<1的,即0.xxxxxx
这个时候在DB2的环境下SELECT出来的值是0
解决方法:
先把field1转换成DOUBLE类型的,这样计算出来的就会得出小数点了,会显示出0.xxxx
SELECT CAST(field1 AS FLOAT)/field2 FROM TB;
ps.网上搜的资料,写的是double,但在SQL Server2008中一直报错,改成FLOAT就没问题了。
小数点显示4位小数。可以进一步四舍五入,保留两位小数点
SELECT ROUND(CAST(field1 AS DOUBLE)/field2, 2) FROM TB;
如果数据列的值为NULL,将其设置为0,那么sql就要这么写
SELECT ROUND(COALESCE(CAST(field1 AS DOUBLE), 0)/field2, 2) FROM TB;
COALESCE这个函数系统的用法如下:
a. 输入参数为字符类型,且允许为空的,可以使用COALESCE(inputParameter,”)把NULL转换成”;
b. 输入类型为整型,且允许为空的,可以使用COALESCE(inputParameter,0),把空转换成0;
c. 输入参数为字符类型,且是非空非空格的,可以使用COALESCE(inputParameter,”)把NULL转换成”,然后判断函数返回值是否为”;
d. 输入类型为整型,且是非空的,不需要使用COALESCE函数,直接使用IS NULL进行非空判断。