我真的陷入了一个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;
只是为了看看我有多少独特的记录。不幸的是,这次超时了。
有没有人知道如何计算唯一行并选择相同的类型?
答案 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;