SQL第三章总结

本章目标

嵌套子查询 聚合技术 排序函数

例题:查询学号在王五前面的同学

select * from stuinfo where stuid<(select stuid from stuinfo where stuname='王五')

注意

在查询语句中使用 <,>,=符号后的子查询的结果只能有一个值

例题:查找JAVA分数大于80分的学员姓名

select stuname from stuinfo where stuid in (select stuid from stumarks where sybject = 'java')

NOT IN的用法和IN一样,唯一的区别就是意义相反

EXISTS 和 NOT EXISTS 表示存在和不存在的意思

例题:查询存在分数的学员的信息

select * from stuinfo where exists(select * from stumarks where stumarks.stuid = stuinfo. stuid)

在SQL查询中,SOME,ANY,ALL后必须跟子查询 并且SOME和ANY的作用是一样的表示其中的任何一项

ALL 表示所有的项

COMPUTE 和COMPUTE BY进行汇总查询

compute子句需要下列信息:

1.可选by关键字 2. 行聚合函数名称 3. 要对其执行行聚合函数的列

例题:对信息进行分组查询并统计

select * from stumarks order by stuid desc compute avg(score),sum(score) by stuid

排序函数 语法:排序函数 over([分组子句]排序子句[desc|asc])

ROW_NUMBER函数生成的排序根据排序子句给出递增连续的序号

RANK函数生成的排序根据子句给出递增的序号,但是存在并列并且跳空

DENSE_RANK函数生成的排序根据排序子句给出递增的序号但是存在并列不跳空

分组子句:PARTITION BY分组列

排序子句:ORDER BY排序列

例题:分科目进行不跳空排名

select dense_rank()over(partition by subject order by score desc)as'排名',

stuinfo.stuid,stuname,subject from stuinfo,stumarks

where stuinfo.stuid=stumarks.stuid

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值