最近學的有點暈,本身就涉及group by和distinct,如何把distinct去掉,優化呢:
select num,
date,
count(distinct(id))
from test1
group by num , date
另外上面這個用法,是不是和如下腳本的邏輯是一樣的呢(去掉distinct)?如果一樣的話就不用改了(我測驗了感覺像一樣的)。。
select num,
date,
count((id))
from test1
group by num , date
uj5u.com熱心網友回復:
count(id) 跟 count(1) 差不多,就是對group進行計數,每組 num , date 有幾行記錄
而count(distinct(id)) 是不一樣的,是對每組group里有幾個不同的id,
舉例,記錄如下:
id num
1 1
1 2
2 3
2 3
3 3
那么 select num,count(id) from a group by num回傳
1 1
2 1
3 3
而 select num,count(distinct(id)) from a group by num 回傳
1 1
2 1
3 2
uj5u.com熱心網友回復:
id不重復的話 效果一樣uj5u.com熱心網友回復:
id有重復的,測驗結果上下兩個還是一樣。
我測驗10萬條的資料,兩條sql得出結論都一樣啊
uj5u.com熱心網友回復:
id主鍵吧。如果相同結果就證明沒有重復的uj5u.com熱心網友回復:
看我1樓的回復,把那些資料匯入你的資料庫,執行看看就知道了,
不驗證也敢回復說一樣
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/93808.html
標籤:MySQL
上一篇:小白請教。如圖,請問為什么?
下一篇:MONGOOSE WARNING
