oracle中查询中单表多字段去重,怎么实现?

例子如下,如表A的数据结构如下:ABCD1234223412431234现在我想查出A,B字段,条件是A,B,C三个字段都不重复,我现在想查询的结果是AB122212我是... 例子如下,如表A的数据结构如下:
A B C D
1 2 3 4
2 2 3 4
1 2 4 3
1 2 3 4
现在我想查出A,B字段,条件是A,B,C三个字段都不重复,我现在想查询的结果是
A B
1 2
2 2
1 2
我是菜鸟,求大神指导,请把一些用到的函数的用法和参数的意思comment下。。

多谢鸟~~
展开
 我来答
badkano
推荐于2018-03-11 · 知道合伙人体育行家
badkano
知道合伙人体育行家
采纳数:144776 获赞数:885372
团长

向TA提问 私信TA
展开全部
select t.a,t.b,t.c from
(select a,b,c from 表A group by a,b,c) t

没用到什么函数,就一个group by ,是用来去重的,
你可以把括号里的先执行,看下结果,外边就是一个从括号里再选出a,b两个字段
micro0369
2013-06-09 · TA获得超过1.2万个赞
知道大有可为答主
回答量:9250
采纳率:85%
帮助的人:4074万
展开全部
其实思路就是你的过程:
1. 首先去重(用distinct)
select distinct a,b,c from 表A
2. 然后查出a、b列(子查询)
select a,b from (select distinct a,b,c from 表A) test

或者更简单的(用group by),可以试试,我不确定。
select a,b
from 表A
group by a,b,c
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
2013-06-09
展开全部
CREATE TABLE #test (
  A  INT,
  B  INT,
  C  INT,
  D  INT
);
GO


INSERT INTO #test VALUES(1,2,3,4);
INSERT INTO #test VALUES(2,2,3,4);
INSERT INTO #test VALUES(1,2,4,3);
INSERT INTO #test VALUES(1,2,3,4);
GO



-- 如果对排序没有要求的话。

SELECT  
  A, B
FROM
(
SELECT 
  DISTINCT A,B,C,D 
FROM 
  #test 
) subQuery

go


A           B
----------- -----------
          1           2
          1           2
          2           2

(3 行受影响)
追问
那如果我想取的字段是D,条件是A,B,C不重复,怎么办。
追答
SELECT
MAX(D)
FROM
#test main
GROUP BY
A,B,C;
GO

-----------
4
3
4

(3 行受影响)
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
2018-03-11
展开全部
把字段加起来去重复呢? distinct(A||B||C)
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
Star83521
2013-06-09
知道答主
回答量:5
采纳率:0%
帮助的人:3.1万
展开全部
用distinct去除重复
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式