oracle查询不重复的列,ORACLE查问不重复字段的全部列

1、要求,在一个表中,某一字段为重复字段。须要去除重复字段。同时将一切字段显示出来。

SELECT * FROM (select a1,a2,a3,

Row_number() OVER (PARTITION BY a1 ORDER BY a1)  rn

from a

) where RN = 1

我是oralce菜鸟,下面附Row_number() OVER (PARTITION BY a1 ORDER BY a1)作用

Oracle分析函数RANK(),ROW_NUMBER(),LAG()等的运用方法

ROW_NUMBER() OVER (PARTITION BY COL1 ORDER BY COL2)

表示依据COL1分组,在分组内部依据 COL2排序

而这个值就表示每组内部排序后的顺序编号(组内延续的独一的)

RANK() 类似,不过RANK 排序的时分跟派名次一样,能够并列2个第一名之后 是第3名

LAG 表示 分组排序后 ,组内后面一条记载减先面一条记载的差,第一条可前往 NULL

BTW: EXPERT ONE ON ONE 上讲的最细致,尚有许多有关特征,文档看起来比拟费劲

row_number()和rownum差不多,功用更强一点(能够在各个分组内从1开时排序)

rank()是跳跃排序,有两个第二名时接下来就是第四名(一样是在各个分组内)

dense_rank()l是延续排序,有两个第二名时仍然跟着第三名。

相比之下row_number是没有重复值的

lag(arg1,arg2,arg3):

arg1是从其他行前往的表达式

arg2是期盼检索的现在行分区的偏移量。是一个正的偏移量,时一个往回检索以前的行的数目。

arg3是在arg2表示的数目超出了分组的范围时前往的值。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值