oracle 分析函数

-- 使用分析函数实现数据行的排位产生新列
select ename,sal,
rank() over(order by sal desc), -- 相同排位相同,后续值跳跃
dense_rank() over(order by sal desc), -- 相同排位相同,后续值连续
row_number() over(order by sal desc)
from emp;

-- 分组进行排位
select ename,sal,deptno,
rank() over(partition by deptno order by sal desc), -- 相同排位相同,后续值跳跃
dense_rank() over(partition by deptno order by sal desc), -- 相同排位相同,后续值连续
row_number() over( partition by deptno order by sal desc)
from emp;

 

 

 

------ 表分区查询-------

1.分区:允许用户将一个表分成多个分区
2.分区优点:
用户可以执行查询,只访问表中的特定分区
将不同的分区存储在不同的磁盘,提高访问性能和安全性
可以独立地备份和恢复每个分区
3.表分区的分类:范围分区、列表分区、散列分区...

示例:
创建学生信息表,按年龄 20、40、60、60->
create table students(
id number(6) primary key,
name varchar2(20),
age number(3),
sex varchar2(4),
birthday date
)
--指定分区
partition by range(age)(
partition p1 values less than(20), --小于20岁
partition p2 values less than(40), --小于20岁
partition p3 values less than(60), --小于20岁
partition p4 values less than(maxvalue) --小于20岁
);

--测试分区
insert into students(id,name,age,sex,birthday)
values(1,'张三',18,'女',sysdate);
insert into students(id,name,age,sex,birthday)
values(2,'李四',56,'女',sysdate);
insert into students(id,name,age,sex,birthday)
values(3,'小王吧',23,'女',sysdate);
insert into students(id,name,age,sex,birthday)
values(4,'老李',53,'男',sysdate);
insert into students(id,name,age,sex,birthday)
values(5,'小李子',90,'女',sysdate);
insert into students(id,name,age,sex,birthday)
values(6,'王子',9,'女',sysdate);
insert into students(id,name,age,sex,birthday)
values(7,'哈儿',32,'男',sysdate);
insert into students(id,name,age,sex,birthday)
values(8,'赵云',57,'女',sysdate);
commit;

-- 通过查询
select * from students partition(p1) where age<19;

posted @   LOVE_FOEEVER_MAO  阅读(122)  评论(0编辑  收藏  举报
编辑推荐:
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
阅读排行:
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· Docker 太简单,K8s 太复杂?w7panel 让容器管理更轻松!
点击右上角即可分享
微信分享提示