您的位置:首页 > 其它

DISTINCT和GROUP BY的区别

2008-11-20 12:05 441 查看
其实二者没有什么可比性,但是对于不包含聚集函数的GROUP BY[/b]操作来说,和DISTINCT[/b]操作是等价的。不过虽然二者的结果是一样的,但是二者的执行计划并不相同。

distinct只是将重复的行从结果中出去;
group by[/b]是按指定的列分组,一般这时在select中会用到聚合函数。

distinct是把不同的记录显示出来。
group by[/b]是在查询时先把纪录按照类别分出来再查询。

group by[/b] 必须在查询结果中包含一个聚集函数,而distinct[/b]不用。

--每个部门有多少钱
select sum(钱),部门 from table
group by[/b] 部门

结果:部门1 130
部门2 100

--把相同的记录不显示出来,只选择此两列唯一的
select distinct[/b] 部门,钱 from table

结果:部门1 100
部门1 15
部门2 100

--而实际此表存在的记录如下:select * from table
结果:部门1 100
部门1 15
部门1 15
部门2 100

仔细比对一下,就清楚了。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: