Mysql选择唯一值

Mysql选择唯一值,mysql,select,count,Mysql,Select,Count,我真的被sql查询卡住了。。。我希望有人能帮我解释一下 这是我的桌子的样子 mysql> show fields from france_data; +----------+-------------+------+-----+---------+----------------+ | Field | Type | Null | Key | Default | Extra | +----------+-------------+------+-----

我真的被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;
mysql> select count(*) from france_data group by email;
这是结果集:

+----------+
| count(*) |
+----------+
|  2405259 |
+----------+
1 row in set (0.01 sec)
现在我试着进行这样的计数:

mysql> select count(*) from france_data;
mysql> select count(*) from france_data group by email;
看看我有多少独特的记录。不幸的是,这已经过时了

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

请尝试此方法

SELECT COUNT(DISTINCT email) FROM france_data 

如果您查看的是基于电子邮件的唯一行,那么

select count(distinct email) from france_data
我们应该做到这一点

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

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

SELECT COUNT(DISTINCT email) FROM france_data 

通过电子邮件从france_数据订单中选择计数(不同的电子邮件)

太好了!!计数有效:),但现在我尝试了不使用count()的相同查询。我不确定它是需要很长时间才能运行,还是挂着不起作用。我是这样选择的吗<代码>从法国数据中选择不同的电子邮件我认为您可以使用LIMIT命令拆分查询多个语句,比如我使用
LIMIT 0500
如果这导致500行被assed,那么只返回不同的值,实际上导致我的返回少于500行?好的,它现在起作用了:)祝我有一个好的开始。非常感谢。count distinct对我有效,我不需要知道它重复了多少次,但我需要输出一个结果表,显示所有字段,电子邮件字段是唯一的。哇,第二个查询正是我要找的!不知何故,我从来没有理解过分组方式的行为。非常感谢@Nikhil!