日期:2014-05-18  浏览次数:20455 次

急求一查询语句。感谢
现有表
id     zd1   zd2     zd3
1       111   222     333
2       444   555     666
3       111   222     777
4       111   222     333
5       888   555     666
6       444   555     666
结果:
id     zd1   zd2     zd3
1       111   222     333
2       444   555     666
3       111   222     777
4       888   555     666

需求是查询出三个字段都必须唯一的第一条记录。重复的不要。。我知道一个字段用distinct,三个字段有人告诉我用   group   by,但我没写出来。。。急求高手解决!!感谢

------解决方案--------------------
错了.应该是

select min(id) id, zd1,zd2,zd3 from 表 group by zd1,zd2,zd3
------解决方案--------------------
select min(id) as id, zd1,zd2,zd3 from 表 group by zd1,zd2,zd3

------解决方案--------------------
create table tb(id int, zd1 int, zd2 int, zd3 int)
insert into tb values(1 , 111, 222, 333)
insert into tb values(2 , 444, 555, 666)
insert into tb values(3 , 111, 222, 777)
insert into tb values(4 , 111, 222, 333)
insert into tb values(5 , 888, 555, 666)
insert into tb values(6 , 444, 555, 666)
select min(id) id, zd1,zd2,zd3 from tb group by zd1,zd2,zd3 order by id
drop table tb

/*
id zd1 zd2 zd3
----------- ----------- ----------- -----------
1 111 222 333
2 444 555 666
3 111 222 777
5 888 555 666

(所影响的行数为 4 行)


*/