Oracle之去重

SELECT * FROM EMP ;

		JOB           DEPTNO       SAL
		--------- ---------- ----------
		ANALYST           20       6600
		CLERK             10       1420
		CLERK             20       2090
		CLERK             20       2090
		MANAGER           10       2695
		MANAGER           20       3135
		MANAGER           20       3135
		PRESIDENT         10       5500
		SALESMAN          20       6160

SELECT * from EMP a Where rowid !=(select max(rowid) From EMP b Where  a.JOB = b.JOB And a.DEPTNO = b.DEPTNO) ;

SELECT A.JOB , A.DEPTNO, MAX(A.SAL) AS SAL FROM EMP A group by A.JOB , A.DEPTNO having COUNT(*)>1 
UNION ALL
SELECT A.JOB , A.DEPTNO, MAX(A.SAL) AS SAL FROM EMP A group by A.JOB , A.DEPTNO having COUNT(*)=1;

SELECT * FROM
(
 SEELCT  A.JOB , A.DEPTNO, A.SAL , row_number()over(PARTITION BY A.JOB , A.DEPTNO ORDER BY A.SAL) AS NUM FROM EMP A
)T 
WHERE T.NUM=1
;

SELECT DISTINCT * FROM EMP ;
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值