如果我有三列:
orderNumber, name, email
我想知道表格中有多少个独特的电子邮件我会怎么做呢?
如下的陈述:
SELECT count(email) FROM orders
给了我总数。
我尝试了SELECT DISTINCT count(email) FROM orders
但这似乎没有给我我期待的数字。
答案 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
这将返回电子邮件地址和出现次数的列表。