日期:2014-05-17  浏览次数:20619 次

求助SQL的Distinct和Group By查询不同数据
本帖最后由 zmjfanfan 于 2013-07-11 11:13:21 编辑
subject表如下:

subnum   name
 1           美术
 2           音乐
 2           音乐
 4           美术


分别用distinct和group by查询这个表

1、怎么样查询出name不一样的数据?
2、怎么样查询出name和subnum都不一样的数据?
3、distinct和group by的效率哪个高?
4、distinct和group by后面跟多个列名的话是怎么实现筛选的?

多谢!!
SQL

------解决方案--------------------
1、select distinct name from tb
2、select distinct name ,subnum from tb
3、解析后都一样
4、group by  后面的字段先后是按照优先级的(distinct 同)

group by A,B 即先按照A进行分组,A相同的,按B分组

group by B,A 即先按照B进行分组,B相同的,按A分组
------解决方案--------------------
select distinct [name] from subject
select [name] from subject group by [name]

select distinct [name],subnum from subject
select [name],subnum from subject group by [name],subnum

哪个效率高请打开查询分析器后按Ctl+L执行,看实际情况

group by后面的多个列名可以放在where后面进行筛选