MySQL - 计算唯一值的数量

时间:2013-05-22 16:39:00

标签: mysql

如果我有三列:

orderNumber, name, email

我想知道表格中有多少个独特的电子邮件我会怎么做呢?

如下的陈述:

SELECT count(email) FROM orders

给了我总数。

我尝试了SELECT DISTINCT count(email) FROM orders

但这似乎没有给我我期待的数字。

4 个答案:

答案 0 :(得分:109)

使用

SELECT count( DISTINCT(email) ) FROM orders

Distinct提供唯一的电子邮件ID,然后只计算它们。

答案 1 :(得分:7)

SELECT  count(DISTINCT(email)) FROM orders

它与您的发布不同,因为它会在计算之前过滤掉重复的内容

答案 2 :(得分:0)

为获得最佳性能,您应该使用:

SELECT 
sub.email, 
count(1) as 'count_unique' 
FROM 
(SELECT email FROM orders GROUP by email) sub

答案 3 :(得分:0)

被接受的灵魂对我不起作用-它为表中的每个唯一电子邮件地址返回一个“ 1”。

这是我必须获取所需信息的步骤:

select email, count(email) AS total from sysAccessLog group by email order by total desc

这将返回电子邮件地址和出现次数的列表。