作者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