4
我在mysql中有一個大表,它有1300萬行。爲什麼mysql select count(distinct user_id)返回錯誤的數字?
Mysql版本是5.7.10。
表如下結構:
create table table_name (
user_id varchar(20) not null,
item_id varchar(20) not null
);
1.第一個SQL是:
select count(distinct user_id) from table;
結果:760000
2.第二SQL是:
select count(1) from (select user_id from table group by user_id) a;
結果:120000
user_id是不爲每一行空。
而且,正確的數字是120,000。爲什麼第一個sql得到錯誤的數字?
然後,我運行配置單元和spark-sql中的第一個sql,結果是120,000。
那麼,這是一個MySQL的錯誤或東西可以設置使事情正確嗎?
謝謝!
更新:我嘗試另一臺PC上,第一個SQL的結果是120,000.This時間得到正確的number.Mysql版本是26年6月5日。 所以,也許這是一個5.7.10的錯誤。
已經有這些缺陷的1-2過去[例如這一個](http://bugs.mysql.com/bug.php?id=70038)。也許是另一個類似的錯誤和/或迴歸的例子? –
MyISAM或InnoDB? – Strawberry
他們都嘗試過。起初,它是InnoDB,然後我改爲MyISAM。第一個sql的結果總是錯誤的。 –