在使用mysql时,有时需要查询出某个字段不重复的记录,mysql提供有distinct这个关键字来过滤掉多余的重复记录只保留一条。
注意该查询只是简单地检索每个记录的列,并且他们中的一些出现多次。为了使输出减到最少,增加关键字DISTINCT检索出每个唯一的输出记录。
talbe name: userinfo
uid passport addtime
1 A 2012-04-10
2 B 2012-04-10
3 A 2012-04-10
4 B 2012-04-10
5 B 2012-04-10
语句:select distinct passport from userinfo
结果:
passport
A
B
但有的时候我们需要检索出这条记录在表中出现了多少次那么sql语句该怎么写呢?
语句:select distinct passport,count(*) as hits from userinfo group by passport
结果:
passport hits
A 2
B 3
更进一步说我想获得这个表中的其他一些信息呢(比如将其中出现三次以上的记录筛选出来呢)
语句: select t.passport from ( select distinct passport,count(*) as hits from userinfo group by passport ) t where t.hits>2
结果:
passport
B