作者nevermind (別在意)
看板Database
標題[SQL ] COUNT中使用DISTINCT的問題
時間Mon Jan 11 06:52:24 2010
MySQL版本:5.0.51a
環境:windows 2003 server + phpMyAdmin
現在我的table有x,y,z三個欄位,其中z欄位只有五種值1,2,3,4,5
SELECT COUNT( DISTINCT `x`,`y` ) FROM `table` WHERE 1
得到的加總結果是217
但是當我把這個動作分開成五個query的時候……
SELECT COUNT( DISTINCT `x`,`y` ) FROM `table` WHERE `z` = 1
SELECT COUNT( DISTINCT `x`,`y` ) FROM `table` WHERE `z` = 2
SELECT COUNT( DISTINCT `x`,`y` ) FROM `table` WHERE `z` = 3
SELECT COUNT( DISTINCT `x`,`y` ) FROM `table` WHERE `z` = 4
SELECT COUNT( DISTINCT `x`,`y` ) FROM `table` WHERE `z` = 5
他們得到的結果分別會是46, 93, 67, 64, 28
46+93+67+64+28=298≠217 orz
而不使用DISTINCT的時候這個問題就消失了,請問有人知道為什麼會發生這種情形嗎……?
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 140.113.254.98
※ 編輯: nevermind 來自: 140.113.254.98 (01/11 06:52)
※ 編輯: nevermind 來自: 140.113.254.98 (01/11 06:53)
1F:推 LPH66:大概是有不同 z 值但 x,y 值相同的紀錄吧 01/11 06:54
2F:→ nevermind:可以請樓上說清楚一點嗎@@? 01/11 06:55
3F:→ nevermind:忽然理解了……感謝一樓m(_ _)m 01/11 07:02