小编Mr.*_*ang的帖子

为什么mysql选择count(distinct user_id)返回错误的数字?

我在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的错误.

mysql sql database

5
推荐指数
1
解决办法
679
查看次数

标签 统计

database ×1

mysql ×1

sql ×1