从结果表中选择唯一的行

时间:2014-09-19 19:28:57

标签: sql

我有一个自我连接结果表,我有很多重复的行(因为我在该表上也有历史......)。
结果表是(date,date,varchar,int,int,int,int) 我怎样才能返回唯一的行(所有列都相同..)

谢谢!

2 个答案:

答案 0 :(得分:1)

您可以使用DISTINCT

select distinct * 
from yourTable

答案 1 :(得分:1)

这取决于你的独特意思;给出一张表:

create table example
(
    col1 int
    ,col2 int
)
insert example (col1,col2) values (1,2)
insert example (col1,col2) values (1,2)
insert example (col1,col2) values (1,3)
insert example (col1,col2) values (1,4)

您希望结果是:

1,2
1,3
1,4

(即返回的行是唯一的;尽管源表中可能有多行具有这些相同的值)

或:

1,3
1,4

(即你只想要那些在源数据中唯一的行开头)

如果是前者,请使用:

select distinct col1
, col2 
from example

如果是后者,请使用:

select col1
, col2 
from example
group by col1
, col2
having count(1) = 1

SQL小提琴:http://sqlfiddle.com/#!3/594ac/1