sql distinct

来自百度的提问:
我想实现下面的sql语句
表名:sj_dj
id   djbm   sname
1    001     a
2    001     a
3    004     b
4    002     b
5    003     c

结果为:
id   djbm   sname
1    001     a
3    004     b
4    002     b
5    003     c
因为id为主键递增的,用distinct 取出的值还是全部,请问如何写SQL语句?

回答:
select distinct  max(z.id),z.djbm,z.sname from sj_dj z group by z.djbm, z.sname

distinct 在这里没有什么作用,去掉后结果一样

select b.id,a.* from (select distinct djbm,sname from sj_dj) a left join sj_dj b on a.djbm=b.djbm 

或者:

select min(id) as id,djbm,sname from sj_dj  group by djbm, sname 

猜你喜欢

转载自576017120.iteye.com/blog/1507572