[SQL ] COUNT中使用DISTINCT的問題

看板Database作者 (別在意)時間16年前 (2010/01/11 06:52), 編輯推噓1(102)
留言3則, 2人參與, 最新討論串1/1
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)

01/11 06:54, , 1F
大概是有不同 z 值但 x,y 值相同的紀錄吧
01/11 06:54, 1F

01/11 06:55, , 2F
可以請樓上說清楚一點嗎@@?
01/11 06:55, 2F

01/11 07:02, , 3F
忽然理解了……感謝一樓m(_ _)m
01/11 07:02, 3F
文章代碼(AID): #1BIbeg4F (Database)