SQL数据库中除法用什么来实现?

SQL数据库中除法用什么来实现?,第1张

用SQL语句实现的一个简单除法 *** 作,把问题一个一个分开来解释:

1.查询在主查询中用到了depositor表。而在它的嵌套子查询中,同样用到了这张表。所以,这个查询为相关子查询。

相反,如果这个嵌套查询在子查询中没有用到主查询中的表,那么我们称之为无关子查询。

相关子查询和无关子查询的在使用上的区别是什么呢?如果一个嵌套查询中包含无关子查询。那么我们会先执行子查询,在子查询结果的这张表中,我们再执行主查询。也就是说在子查询结果的基础之上再进行查询。

而相关子查询不同,在主查询中扫描一条记录,比如果我们拿到了一条depositor的记录A,我们会把A带入到子查询中,看结果是否为真,如果为真,那么就输出A。然后取depositor的表中的下一项B。一次逐条扫描。

2.在数据库中,如果我们想表示关系A包含关系B。我们应该怎么表示呢?

对!用NOT EXISTS关键字。

如果我们说A包含B,那么也就等价于NOT EXISTS ( B EXCEPT A)

换句话说就是 ==》不存在属于B而不属于A的元组。那么也就是A包含B。

这样:

select

t.[origin-destination],t.[SH/LANE/MOT] /(select count(1) from ['TMS$'] ) AS PERCENTAGE

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) 。

扩展资料:

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

)

)


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/6779711.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-03-28
下一篇 2023-03-28

发表评论

登录后才能评论

评论列表(0条)

保存