SQL查詢多條不重複記錄值

    由於設計需要,需要查詢不重複的記錄值。例如有如下表結構和值
table
fid   name sex
1     a      男
2     b      男
3     c      女
4     d      女
5     a      男
6     b      男


方案一:distinct
select distinct name from table
得到結果:
name
a
b
c
d

那如果要同時name和sex字段都重複才被篩選,則使用以下語句:

select distinct name, sex from table

 

方案二:group by

select min(fid),name,sex from table group by name
得到結果:
fid   name sex
1     a      男
2     b      男
3     c      女
4     d      女

如果要打開所有記錄,不指定字段用(*),使用如下語句:

select * from table where fid in(Select min(fid) FROM table group by name)
得到結果:

fid   name sex
1     a      男
2     b      男
3     c      女
4     d      女


方案三:
查詢數據中所有某字段重複的記錄
select   *   from   table   where   name in(select   name   from   table   group   by   name     having   count(name)=2)
得到如下結果:
fid   name sex
1     a      男
2     b      男
5     a      男
6     b      男
以此類推:
select   *   from   table   where   name in(select   name   from   table   group   by   name     having   count(name)=1)

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章