A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

本帖最后由 htb52110 于 2018-1-6 21:22 编辑

8、分析函数
以下三个分析函数可以用于排名使用。
下图为三种排名方式的举例

8.1、 RANK 相同的值排名相同,排名跳跃
需求:对 T_ACCOUNT 表的 usenum 字段进行排序,相同的值排名相同,排名跳跃         
语句:
select rank() over(order by usenum desc ),usenum from
T_ACCOUNT;
结果:

8.2、(2) DENSE_RANK 相同的值排名相同,排名连续
需求:对 T_ACCOUNT 表的 usenum 字段进行排序,相同的值排名相同,排名连续
语句:
select dense_rank() over(order by usenum desc ),usenum
from T_ACCOUNT;
结果:

8.3、 ROW_NUMBER 返回连续的排名,无论值是否相等
需求:对 T_ACCOUNT 表的 usenum 字段进行排序,返回连续的排名,无论值是否相等
语句:
select row_number() over(order by usenum desc ),usenum from T_ACCOUNT;
结果:
9、集合运算
9.1、概念:
集合运算,集合运算就是将两个或者多个结果集组合成为一个结果集。集合运算
包括:
··UNION ALL(并集),返回各个查询的所有记录,包括重复记录。
··UNION(并集),返回各个查询的所有记录,不包括重复记录。
··INTERSECT(交集),返回两个查询共有的记录。
··MINUS(差集),返回第一个查询检索出的记录减去第二个查询检索出的记录之
后剩余的记录。
图解:

9.2、并集运算
UNION运算符返回两个集合去掉重复元素后的所有记录
UNION ALL运算符运算符返回两个集合所有记录,不去除重复的元素;
语句:
select * from t_owners where id<=7
union all(或者 union)
select * from t_owners where id>=5;
9.3、交集运算
INTERSECT运算符返回同时属于两个集合的记录;
语句:
select * from t_owners where id<=7
intersect
select * from t_owners where id>=5;
9.4、差集运算
MINUS返回属于第一个集合但不属于第二个集合的记录
语句:
select * from t_owners where id<=7
minus
select * from t_owners where id>=5;

0 个回复

您需要登录后才可以回帖 登录 | 加入黑马