您的位置:首页 > 其它

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

2016-08-05 15:39 405 查看


distinct 和 group by 在查询多列数据去重复时的区别在哪? [问题点数:40分,结帖人luxer_1985]

不显示删除回复显示所有回复
显示星级回复显示得分回复
只显示楼主 

收藏





关注
luxer_1985
小字
本版等级:


结帖率:100%
楼主发表于: 2012-09-03 10:30:50

SQL code

?
SQL code

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

更多0分享到:

相关知识库: Unity3D Oracle Scala Linux

<iframe id="iframeu1636200_0" src="http://pos.baidu.com/kcam?rdid=1636200&dc=2&di=u1636200&dri=0&dis=0&dai=2&ps=1007x404&dcb=BAIDU_SSP_define&dtm=HTML_POST&dvi=0.0&dci=-1&dpt=none&tsr=0&tpr=1470382545707&ti=distinct%20%E5%92%8C%20group%20by%20%E5%9C%A8%E6%9F%A5%E8%AF%A2%E5%A4%9A%E5%88%97%E6%95%B0%E6%8D%AE%E5%8E%BB%E9%87%8D%E5%A4%8D%E6%97%B6%E7%9A%84%E5%8C%BA%E5%88%AB%E5%9C%A8%E5%93%AA%EF%BC%9F-CSDN%E8%AE%BA%E5%9D%9B-CSDN.NET-%E4%B8%AD%E5%9B%BD%E6%9C%80%E5%A4%A7%E7%9A%84I&ari=2&dbv=2&drs=3&pcs=1387x699&pss=1387x4840&cfv=0&cpl=4&chi=1&cce=true&cec=UTF-8&tlm=1470382545&rw=699&ltu=http%3A%2F%2Fbbs.csdn.net%2Ftopics%2F390198600&ltr=https%3A%2F%2Fwww.baidu.com%2Flink%3Furl%3DdphzhC8orJLpM0JiiTY-2nTFZ0KDggBEGZUOE0Q0QfcIu_byGQ5uaz7b9e0Lt32m%26wd%3D%26eqid%3D84ce43e1000438720000000557a44148&ecd=1&psr=1920x1080&par=1920x1040&pis=-1x-1&ccd=24&cja=false&cmi=6&col=zh-CN&cdo=-1&tcn=1470382546&qn=eea858c8595ea643&tt=1470382545689.46.342.344" width="200" height="22" align="center,center" vspace="0" hspace="0" marginwidth="0" marginheight="0" scrolling="no" frameborder="0" allowtransparency="true" style="box-sizing: content-box; border-width: 0px; border-style: initial; vertical-align: bottom; margin: 0px;"></iframe>

 

<iframe id="iframeu1636201_0" src="http://pos.baidu.com/kcam?rdid=1636201&dc=2&di=u1636201&dri=0&dis=0&dai=3&ps=1007x658&dcb=BAIDU_SSP_define&dtm=HTML_POST&dvi=0.0&dci=-1&dpt=none&tsr=0&tpr=1470382545707&ti=distinct%20%E5%92%8C%20group%20by%20%E5%9C%A8%E6%9F%A5%E8%AF%A2%E5%A4%9A%E5%88%97%E6%95%B0%E6%8D%AE%E5%8E%BB%E9%87%8D%E5%A4%8D%E6%97%B6%E7%9A%84%E5%8C%BA%E5%88%AB%E5%9C%A8%E5%93%AA%EF%BC%9F-CSDN%E8%AE%BA%E5%9D%9B-CSDN.NET-%E4%B8%AD%E5%9B%BD%E6%9C%80%E5%A4%A7%E7%9A%84I&ari=2&dbv=2&drs=3&pcs=1387x699&pss=1387x4840&cfv=0&cpl=4&chi=1&cce=true&cec=UTF-8&tlm=1470382545&rw=699&ltu=http%3A%2F%2Fbbs.csdn.net%2Ftopics%2F390198600&ltr=https%3A%2F%2Fwww.baidu.com%2Flink%3Furl%3DdphzhC8orJLpM0JiiTY-2nTFZ0KDggBEGZUOE0Q0QfcIu_byGQ5uaz7b9e0Lt32m%26wd%3D%26eqid%3D84ce43e1000438720000000557a44148&ecd=1&psr=1920x1080&par=1920x1040&pis=-1x-1&ccd=24&cja=false&cmi=6&col=zh-CN&cdo=-1&tcn=1470382546&qn=cb1035419e9a5a35&tt=1470382545689.77.348.350" width="200" height="22" align="center,center" vspace="0" hspace="0" marginwidth="0" marginheight="0" scrolling="no" frameborder="0" allowtransparency="true" style="box-sizing: content-box; border-width: 0px; border-style: initial; vertical-align: bottom; margin: 0px;"></iframe>

 

<iframe id="iframeu1636204_0" src="http://pos.baidu.com/kcam?rdid=1636204&dc=2&di=u1636204&dri=0&dis=0&dai=4&ps=1007x912&dcb=BAIDU_SSP_define&dtm=HTML_POST&dvi=0.0&dci=-1&dpt=none&tsr=0&tpr=1470382545707&ti=distinct%20%E5%92%8C%20group%20by%20%E5%9C%A8%E6%9F%A5%E8%AF%A2%E5%A4%9A%E5%88%97%E6%95%B0%E6%8D%AE%E5%8E%BB%E9%87%8D%E5%A4%8D%E6%97%B6%E7%9A%84%E5%8C%BA%E5%88%AB%E5%9C%A8%E5%93%AA%EF%BC%9F-CSDN%E8%AE%BA%E5%9D%9B-CSDN.NET-%E4%B8%AD%E5%9B%BD%E6%9C%80%E5%A4%A7%E7%9A%84I&ari=2&dbv=2&drs=3&pcs=1387x699&pss=1387x4840&cfv=0&cpl=4&chi=1&cce=true&cec=UTF-8&tlm=1470382545&rw=699&ltu=http%3A%2F%2Fbbs.csdn.net%2Ftopics%2F390198600&ltr=https%3A%2F%2Fwww.baidu.com%2Flink%3Furl%3DdphzhC8orJLpM0JiiTY-2nTFZ0KDggBEGZUOE0Q0QfcIu_byGQ5uaz7b9e0Lt32m%26wd%3D%26eqid%3D84ce43e1000438720000000557a44148&ecd=1&psr=1920x1080&par=1920x1040&pis=-1x-1&ccd=24&cja=false&cmi=6&col=zh-CN&cdo=-1&tcn=1470382546&qn=89894fde133ef2c9&tt=1470382545689.78.436.438" width="200" height="22" align="center,center" vspace="0" hspace="0" marginwidth="0" marginheight="0" scrolling="no" frameborder="0" allowtransparency="true" style="box-sizing: content-box; border-width: 0px; border-style: initial; vertical-align: bottom; margin: 0px;"></iframe>

对我有用[0] 丢个板砖[0] 引用 | 举报 | 管理
回复次数:9



关注
zhangandli
人生无悔
本版等级:



 

#1 得分:10回复于: 2012-09-03 10:39:27

可能效率上有區別,哪個快,要具體測,測試過.在此處沒其他區別

如果有計算匯總等聚合函數(sum,avg,max,min...)在內,則就有區別了,此時只能用group by
对我有用[0] 丢个板砖[0] 引用 | 举报 | 管理




关注
py418578291
ORAClE SE
本版等级:


#2 得分:5回复于: 2012-09-03 10:56:23

distinct 会启动sql引擎

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

数据量大的话,一般用分组。
对我有用[0] 丢个板砖[0] 引用 | 举报 | 管理




关注
fw0124
fw0124
本版等级:



 

 

#3 得分:0回复于: 2012-09-03 10:56:51

需要聚合运算采用group by。
对我有用[0] 丢个板砖[0] 引用 | 举报 | 管理




关注
jaylongli
加油馒头
本版等级:


#4 得分:0回复于: 2012-09-03 10:59:35

可满足的要求是不一样的
对我有用[0] 丢个板砖[0] 引用 | 举报 | 管理




关注
Rexmax
睿智天成
本版等级:


#5 得分:20回复于: 2012-09-03 11:16:02

distinct只是将重复的行从结果中出去; 

group by是按指定的列分组,一般这时在select中会用到聚合函数。

distinct是把不同的记录显示出来。 

group by是在查询时先把纪录按照类别分出来再查询。

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

对我有用[0] 丢个板砖[0] 引用 | 举报 | 管理




关注
luxer_1985
小字
本版等级:


#6 得分:0回复于: 2012-09-03 11:22:18

引用 2 楼  的回复:

distinct 会启动sql引擎

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

数据量大的话,一般用分组。

我需要的结果:唯一列是A1,但是原表中与之关联的A2、A3列的内容也要在查询结果中体现,比如

A11,A21,A31

A11,A22,A32

A11,A21,A33

……

而重复的(A11,A21,A31)行就被去掉了 

主题中给出的两种方法都可以实现吗?

为什么Group by也可以实现去重,它的功能不只是分组吗?
对我有用[0] 丢个板砖[0] 引用 | 举报 | 管理




关注
luxer_1985
小字
本版等级:


#7 得分:0回复于: 2012-09-03 11:52:21

需求中不用聚合函数 只要查出主键A1下的所有符合要求的行就行了 关键是由于联合查询,结果中可能有重复的
对我有用[0] 丢个板砖[0] 引用 | 举报 | 管理




关注
yangemil
yangemil
本版等级:


#8 得分:5回复于: 2012-09-04 15:15:06

引用 5 楼  的回复:

distinct只是将重复的行从结果中出去; 

group by是按指定的列分组,一般这时在select中会用到聚合函数。

distinct是把不同的记录显示出来。 

group by是在查询时先把纪录按照类别分出来再查询。

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

正解!!
对我有用[0] 丢个板砖[0] 引用 | 举报 | 管理




关注
yjytiantang
yjytiantang
本版等级:


#9 得分:0回复于: 2012-09-04 15:38:44

引用 6 楼  的回复:

引用 2 楼  的回复:

distinct 会启动sql引擎

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

数据量大的话,一般用分组。

我需要的结果:唯一列是A1,但是原表中与之关联的A2、A3列的内容也要在查询结果中体现,比如

A11,A21,A31

A11,A22,A32

A11,A21,A33

……

而重复的(A11,A21,A……

你是按 a1,a2,a3分的组,相当于去重了,你要是 group by a1 ;  或者 group by a1,a2 ; 差别就出来了。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: