SQL查询多条不重复记录值
2011-07-11 17:31
260 查看
由于设计需要,需要查询不重复的记录值。例如有如下表结构和值
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)
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)
相关文章推荐
- SQL查询多条不重复记录值(有借鉴意义)
- 【数据库】SQL查询多条不重复记录值简要解析
- SQL查询多条不重复记录值
- SQL查询多条不重复记录值简要解析【转载】
- 【数据库】SQL查询多条不重复记录值简要解析
- SQL重复记录查询的几种方法
- sql查询重复记录、删除重复记录方法大全
- 查询并删除重复记录的SQL语句
- 使用SQL语句对重复记录查询、统计重复次数、删除重复数据
- SQL重复记录查询
- SQL重复记录查询
- SQL查询或删除重复记录
- 查询重复记录的SQL语句
- sql查询重复记录方法大全
- SQL重复记录查询
- Sql查询不重复单一记录
- SQL查询重复记录
- SQL查询重复记录
- 查询并删除重复记录的SQL语句
- mysql中用distinct查询多条不重复记录值