Mysql选择唯一值

时间:2012-03-20 06:57:41

标签: mysql select count

我真的陷入了一个SQL查询...我希望有人可以为我提供一些帮助。

这是我的表格的样子

mysql> show fields from france_data;
+----------+-------------+------+-----+---------+----------------+
| Field    | Type        | Null | Key | Default | Extra          |
+----------+-------------+------+-----+---------+----------------+
| id       | int(11)     | NO   | PRI | NULL    | auto_increment |
| email    | varchar(45) | YES  |     | NULL    |                |
| name     | varchar(45) | YES  |     | NULL    |                |
| lastname | varchar(45) | YES  |     | NULL    |                |
| quality  | varchar(45) | YES  |     | NULL    |                |
| country  | varchar(45) | YES  |     | NULL    |                |
| state    | varchar(45) | YES  |     | NULL    |                |
| year     | varchar(45) | YES  |     | NULL    |                |
| owner    | varchar(45) | YES  |     | NULL    |                |
+----------+-------------+------+-----+---------+----------------+
9 rows in set (0.00 sec)

这是捕获,我的表中有重复的数据,我想从此表中提取所有数据,根据电子邮件不重复。

我跑了一个简单的计数:

mysql> select count(*) from france_data;

这是结果集:

+----------+
| count(*) |
+----------+
|  2405259 |
+----------+
1 row in set (0.01 sec)

现在我尝试运行这样的计数:

mysql> select count(*) from france_data group by email;

只是为了看看我有多少独特的记录。不幸的是,这次超时了。

有没有人知道如何计算唯一行并选择相同的类型?

3 个答案:

答案 0 :(得分:13)

请试试这个

SELECT COUNT(DISTINCT email) FROM france_data 

答案 1 :(得分:3)

如果您正在查看基于电子邮件的唯一行,请使用简单的

select count(distinct email) from france_data

应该这样做。

如果您还希望查看每封电子邮件的重复计数,请尝试以下操作:

select email, count(*) as cnt from france_data group by email order by cnt desc;

答案 2 :(得分:0)

请试试这个

SELECT count(DISTINCT email)FROM france_data ORDER BY email;