Oracle面试题 表连接 高级排序函数

来源:互联网 发布:手机登录电脑版淘宝网 编辑:程序博客网 时间:2024/06/16 19:28



--=================================================================
面试题 掌握:


高级排序函数: 
[ ROW_NUMBER()| RANK() | DENSE_RANK ] OVER (partition by xx order by xx)


1.row_number() 连续且递增的数字 1 2 3 4 
  row_number() over (partition by xx order by xx )  
  
--学生表中按照所在专业分组,同专业内按成绩倒序排序,成绩相同则按学号正序排序,并给予组内等级
select row_number() over(partition by class_id order by score desc)rn,t.* from student2016 t
  
2.rank() 跳跃排序 若有相同数据则排名相同 然后跳跃排序 1 2 2 2 5
  rank() over (partition by xx order by xx ) 


select rank() over(partition by class_id order by score desc)rn,t.* from student2016 t
  
3.dense_rank 若有相同数据则排名相同 然后递增排序
dense_rank  over (partition by xx order by xx ) 1 2 2 2 3


select dense_rank() over(partition by class_id order by score desc)rn,t.* from student2016 t




--=================================================================


高级分组函数:  
GROUP BY (ROLLUP|CUBE | GROUPING SETS) 用于统计多种分组情况的聚合函数值(AVG,SUM,COUNT..)。
根据这三种套路可以得到具体的分组情况,然后将他们UNION ALL起来返回查询结果。


GROUP BY ROLLUP(a, b, c) ROLLUP 翻滚过桥(上楼)法:null a ab abc 合计4种GROUP BY分组
GROUP BY CUBE(a, b, c)  CUBE 立方法: 合计2^3=8种GROUP BY分组
GROUP BY GROUPING SETS ( (a), (b)) GROUPING SETS 组设置法 .合计2种GROUP BY分组。



--=================================================================


面试题-重点掌握:



5.什么是等值连接? 答:使用“=”号进行连接。


6.什么是笛卡尔集? 答:笛卡尔积指做关联操作的每个表的每一行都和其它表的每一行做组合。


7.什么是内连接?  答:内连接只返回两个关联表中所有满足连接条件的记录。


8.什么是外连接?  答:使用外连接,即不仅返回满足连接条件的记录,还将返回不满足连接条件的记录。


  什么是左外连接 ?答:以left join 左侧的表为驱动表,显示驱动表全部记录,若右边有不满足的记录,则补null显示。 
     SELECT table1.column, table2.column
     FROM table1 [LEFT | RIGHT | FULL] JOIN table2
     ON table1.column1 = table2.column2;


9. 什么叫全连接。全连接是指全外连接,即包含左外连接和右外连接的结果。


10 什么叫自连接? 答:同表相互连接,常用于含有上下级关系的“树状”结构。


11.什么叫自然连接? Natural join  从笛卡尔集 筛选出列名/类型/相等且值相等的记录,然后剔除重复的列。


select * from R natural join  S   --alter table R rename column C to E


 R表   S表
A B C  D B E 
1 a 3  2  c 7
2 b 6  3  d 5
3 c 7  1  a 3


Step1:笛卡尔集
 R表   S表
A B C D B E 
1 a 3 2 c 7
1 a 3 3 d 5
1 a 3 1 a 3
2 b 6 2 c 7
2 b 6 3 d 5
2 b 6 1 a 3
3 c 7 2 c 7
3 c 7 3 d 5
3 c 7 1  a 3


Step1:笛卡尔集
 R表   S表
A B C D  E 
1 a 3 1  3
3 c 7 2  7








Step2:从笛卡尔集 筛选出列名相等且值相等的记录 
A B C D B E 
1 a 3 2 c 7
1 a 3 3 d 5
1 a 3 1 a 3
2 b 6 2 c 7
2 b 6 3 d 5
2 b 6 1 a 3
3 c 7 2 c 7
3 c 7 3 d 5
3 c 7 1 a 3




Step3 : 然后去掉重复的同名列 即保留一个相等的列
B  A  C  D  E 
a 1 3 1 3 
c 3 7 2 7


12 自然连接和等值连接的区别。 
     答:1.自然连接要求连接字段的名称必须相同。
        2.自然连接会去掉重复的列。






0 0
原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 lol老是忘了放装备技能怎么办 英雄联盟屏幕出现红框锁定了怎么办 钢三开局修改对电脑有用怎么办 我的世界为什么一直黑屏闪退怎么办 苹果6plus玩游戏闪退怎么办 电脑重置开机黑屏了怎么办才好? 龟头有一小块和鱼鳞一样脱皮怎么办 海盗来了赠送碎片密码忘了怎么办 王者荣耀还差几百金币买英雄怎么办 英雄联盟更新后画面突然很卡怎么办 苹果手机微信登陆没反应怎么办 谷歌商店注册短信一直验证怎么办 英雄联盟开游戏退出来进不去怎么办 忘记了路由器和网关的密码怎么办 逆战无尽塔防71关没怪了怎么办 看香的师傅要钱特别多怎么办 电商企业有收入支出没发票怎么办 洗衣液没稀释把衣服染褪色了怎么办 衣服被洗衣液洗褪色了怎么办 b站不小心点了差评怎么办 c盘文件目录损坏且无法读取怎么办 打印发票时发票上的字体变大怎么办 淘宝店铺食品违法遇到打假人怎么办 搜狗输入法说我没有权限安装怎么办 申请移民美国期间护照到期了怎么办 自己申请的qq号账号忘了怎么办 苹果手机下完游戏找不到在哪怎么办 苹果四下游戏的密码忘了怎么办 qq斗地主老自动发消息怎么办 微信小程序斗地主被限制了怎么办 台式电脑玩斗地主总黑屏怎么办 玩斗地主屏幕出现一半玩不了怎么办 电脑qq文件破损或部分丢失怎么办 华为平板电脑开机密码忘记了怎么办 微信被太多人投诉被限制登录怎么办 微信账号被永久封号里面的钱怎么办 乱世王者领礼包时账号异常怎么办 qq填写资料见证号格式错误怎么办 如果把微信注销 王者的号怎么办 93元的吃鸡号忘了激活吗怎么办 王者荣耀实名注册不是自己的怎么办