distinct簡單來說就是用來去重的,而group by的設(shè)計目的則是用來聚合統(tǒng)計的,兩者在能夠?qū)崿F(xiàn)的功能上有些相同之處,但應(yīng)該仔細(xì)區(qū)分。
單純的去重操作使用distinct,速度是快于group by的。
distinct支持單列、多列的去重方式。
單列去重的方式簡明易懂,即相同值只保留1個。
多列的去重則是根據(jù)指定的去重的列信息來進(jìn)行,即只有所有指定的列信息都相同,才會被認(rèn)為是重復(fù)的信息。
group by使用的頻率相對較高,但正如其功能一樣,它的目的是用來進(jìn)行聚合統(tǒng)計的,雖然也可能實現(xiàn)去重的功能,但這并不是它的長項。
區(qū)別:
1)distinct只是將重復(fù)的行從結(jié)果中出去;
group by是按指定的列分組,一般這時在select中會用到聚合函數(shù)。
2)distinct是把不同的記錄顯示出來。
group by是在查詢時先把紀(jì)錄按照類別分出來再查詢。
group by 必須在查詢結(jié)果中包含一個聚集函數(shù),而distinct不用。
到此這篇關(guān)于Mysql中distinct與group by的去重方面的區(qū)別的文章就介紹到這了,更多相關(guān)distinct與group by的區(qū)別內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
您可能感興趣的文章:- MySQL去重該使用distinct還是group by?
- MySQL中使用去重distinct方法的示例詳解