Oracle Partition By 的使用

Oracle Partition By 的使用,第1张

在项目开发中遇到了需要分组去查询每组第一或者第几的问题,需要用到Partition By的方式,在此记录下相关资料。

Parttion by 关键字是Oracle中分析性函数的一部分,它和聚合函数不同的地方在于它能够返回一个分组中的多条记录,而聚合函数一般只有一条反映统计值的结果。

场景:查询出每个部门工资最低的员工编号(每个部门可能有两个最低的工资员工)

表students

sid sname

1 aa

2 bb

3 cc

4 aa

如何写查询语句

去掉sname中重复的

    1、查找表中多余的重复记录,重复记录是根据单个字段(peopleId)来判断

  select  from people

  where peopleId in (select peopleId from people group by peopleId having count(peopleId) >1)

  2、删除表中多余的重复记录,重复记录是根据单个字段(peopleId)来判断,只留有 rowid最小的记录

  delete from people

  where peopleId in (select peopleId from people group by peopleId having count(peopleId) >1)

  and rowid not in (select min(rowid) from people group by peopleId having count(peopleId )>1)

重复是指你所查询的所有列值都一样,那你可以很容易地使用 DISTINCT 关键字去排重。

看了你的,猜测你的意思是想把部份重复的列只显示一次。

如果那样的话,你需要分组和归类。一般用在生成报表的时候。

但是从你的问题中也不知道你想得到什么样的格式和数据,所以,暂时帮不了你。

建议你去看一下 Rollup 和 CUBE 的使用。也许看完你自己就知道怎么做了

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/langs/13493800.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2025-09-01
下一篇2025-09-01

发表评论

登录后才能评论

评论列表(0条)

    保存