我在mysql中有一个大表.它有1300万行.
Mysql版本是5.7.10.
表结构如下:
create table table_name (
user_id varchar(20) not null,
item_id varchar(20) not null
);
Run Code Online (Sandbox Code Playgroud)
1.第一个sql是:
select count(distinct user_id) from table;
Run Code Online (Sandbox Code Playgroud)
结果:760000
2.第二个sql是:
select count(1) from (select user_id from table group by user_id) a;
Run Code Online (Sandbox Code Playgroud)
结果12万
每行的user_id不为null.
而且,正确的数字是120,000.为什么第一个sql得到错误的数字?
然后,我在hive和spark-sql中运行第一个sql,结果是120,000.
那么,这是一个mysql的错误还是可以设置一些东西来做正确的事情?
谢谢!
更新:我在另一台PC上试用,第一个sql的结果是120,000.这次得到正确的号码.Mysql版本是5.6.26.所以,也许这是5.7.10的错误.