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下。。
多谢鸟~~ 展开
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下。。
多谢鸟~~ 展开
5个回答
展开全部
其实思路就是你的过程:
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
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)
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询