关于distinct的使用
需求是:我要消除user字段值重复的记录,同时又要得到sex,age,work3个字段的值 select distinct user from t1 能消除重复记录,但只能取一个字段,我现在要同时取sex,age,work这3个字段的值该如何写。
select distinct user,sex,age,work可以取多个字段,但只能消除这4个字段值全部相同的记录
主要是sql语句的写法
我们想显示sex、age、work这三个字段的值,但又要对应不同的user(用户),如果使用distinct,只能写成
sql ="select distinct user from t1"
因为对于distinct来说要求比较严格,只能返回一个字段,所以对于多个字段来说不适用。
所以这里采用了group by的方法。
但是如果写成下面这样是不行的
sql ="select user,sex,age,[work] from t1 group by user"
只能写成
sql ="select user,sex,age,[work] from t1 group by user,sex,age,[work]"
这样只有两条记录里的user、sex、age、work全都相等时才被判断为重复记录的
为了避免这种情况,所以采用了以下的写法
sql ="select user,min(sex) as sex,min(age) as age,min(work) as [work] from t1 group by user"