我在MySQL数据库中有一个包含1100万行的表。其中一列是个人ID号。人们在表格中列出了很多次,我想知道有多少个独特的个人ID号码。然后创建一个包含这些唯一数字的表格。 当我从列中计算不同的个人ID号时,我获得的数字与将其直接插入表中时的数字不同。例如:
select count(distinct person_key) from big_table;
给了我4,074,890的计数。
然后当我尝试用它们创建一个表时,
insert into new_table select distinct person_key from big_table;
它只创建了2,701,875行。
(另外,如果我使用查询:select count(1) from (select distinct person_key from big_table) temp;
它给了我2,701,875。)
任何想法我做错了什么?
答案 0 :(得分:0)
COUNT(DISTINCT expr,[expr ...])
返回具有不同非NULL expr值的行数
MySQL文档说。所以我认为person_key
有NULL
或重复值