首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > oracle >

distinct 跟 group by 在查询多列数据去重复时的区别在哪

2012-09-21 
distinct 和 group by 在查询多列数据去重复时的区别在哪?SQL codeselect distinct t.A1, t.A2, t.A3 from

distinct 和 group by 在查询多列数据去重复时的区别在哪?

SQL code
select distinct t.A1, t.A2, t.A3 from t, pwhere t.A4 = p.B1 and p.B2 <> '出口' ;


SQL code
select t.A1, t.A2, t.A3 from t, pwhere t.A4 = p.B1 and p.B2 <> '出口' group by t.A1, t.A2, t.A3 ;


对查询结果去重复行,有什么区别?

[解决办法]
可能效率上有區別,哪個快,要具體測,測試過.在此處沒其他區別
如果有計算匯總等聚合函數(sum,avg,max,min...)在內,則就有區別了,此時只能用group by
[解决办法]
distinct 会启动sql引擎

distinct只是取得唯一列,group by 是分组,可以进行函数计算。

数据量大的话,一般用分组。
[解决办法]
distinct只是将重复的行从结果中出去; 
group by是按指定的列分组,一般这时在select中会用到聚合函数。
distinct是把不同的记录显示出来。 
group by是在查询时先把纪录按照类别分出来再查询。
group by 必须在查询结果中包含一个聚集函数,而distinct不用。


[解决办法]
探讨

distinct只是将重复的行从结果中出去;
group by是按指定的列分组,一般这时在select中会用到聚合函数。
distinct是把不同的记录显示出来。
group by是在查询时先把纪录按照类别分出来再查询。
group by 必须在查询结果中包含一个聚集函数,而distinct不用。

热点排行