1. 程式人生 > >distinct和group by 去掉重複資料分析

distinct和group by 去掉重複資料分析


詳見:http://blog.yemou.net/article/query/info/tytfjhfascvhzxcytp40

用distinct關鍵字只能過濾查詢欄位中所有記錄相同的(記錄集相同),而如果要指定一個欄位卻沒有效果,另外distinct關鍵字會排序 。

select distinct id,name from t1 可以取多個欄位,但只能消除這2個欄位值全部相同的記錄

例如要顯示的欄位為A、B、C三個,而A欄位的內容不能重複可以用下面的語句:

having [條件] order by A desc

顯示出來的欄位和排序欄位都要包括在group by 中

如上句的min(B),min(C),count(*)

有聚合函式的條件寫在having 後面

如果在上句中having加 count(*)>2 就可以查出記錄A的重複次數大於2的記錄

下面語句可以查詢出那些資料是重複的:

將上面的>號改為=號就可以查詢出沒有重複的資料了。

PS:關於group by和distinct到底哪個效能好,我還是不敢太贊同網上的一些說法,自己測試才是王道。
未完,待續。。。