2011-02-03 130 views
3

如何在MySQL中获得不同的计数(*)。distinct count(*)

例如,在table1中我有1000万条记录,里面有重复的记录。

我想从表中找出不同的计数(*)。

我知道,我能做的

从表1 选择不同的*但是,我并不要获取10万条记录,甚至不希望在其他表中插入不同的记录,如, 创建表table2 select * from table1

所以,请帮助我的任何其他选项。任何人的欢迎

帮助

回答

4

尝试使用子查询:

SELECT COUNT(*) FROM (SELECT DISTINCT * FROM table1) T1 
+0

我有一千万条记录在表中,因此使用子查询将放缓结果 – Krunal 2011-02-03 14:20:30

11
SELECT COUNT(DISTINCT field) FROM table 

SELECT COUNT(*) FROM table GROUP BY field; 

(顺便说一句 - 这已经回答了好几次其他地方在这个网站)

0

也许就像:

SELECT SUM(cnt) FROM (SELECT COUNT(*) as cnt FROM tab GROUP BY some_value)