oracle语句,去重、五表联查、统计数量。 Oracle高级查询之over(partition by...)

本文探讨了如何使用Oracle SQL进行去重操作,通过`DISTINCT`关键字结合五表联查展示了数据聚合。同时,深入介绍了`OVER(PARTITION BY ...)`窗口函数的用法,包括计算每个分组的数量、首次值、末次值、总和、平均值以及排序序号。示例中展示了在员工表`EMP`中按部门统计各项信息,为数据库查询和分析提供了实用技巧。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

select distinct
b.FNAME_L2
,c.FPERIODYEAR
,c.FPERIODNUMBER
,d.fname_l1
,count(1) over(partition by b.FNAME_L2,d.fname_l1) 数量
from t_gl_voucherentry a1
,t_gl_voucher a
,t_org_company b
,t_bd_period c
,t_pm_user d
where a1.Fbillid=a.fid
and a.fcompanyid=b.fid
and a.fperiodid=c.fid
and a.fcreatorid=d.fid

在这里插入图片描述
——
——
——
——
select ename 姓名, job 职业, sal 工资, deptno 部门,
first_value(sal) over(partition by deptno) first_sal,
last_value(sal) over(partition by deptno) last_sal,
sum(sal) over(partition by deptno) 部门总工资,
avg(sal) over(partition by deptno) 部门平均工资,
count(1) over(partition by deptno) 部门总数,
row_number() over(partition by deptno order by sal) 序号
from emp;

在这里插入图片描述

Oracle高级查询之over(partition by…)
https://www.cnblogs.com/shengs/p/5954818.html
——
——
——
oracle去重的三个方法
https://www.cnblogs.com/fina1ly/p/9509795.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值