如果我有三列:
orderNumber, name, email
我想计算表中有多少独特的电子邮件我该怎么做?
像这样的声明:
SELECT count(email) FROM orders
给我总数。
我试过SELECT DISTINCT count(email) FROM orders
但这似乎并没有给我我期望的数字。
如果我有三列:
orderNumber, name, email
我想计算表中有多少独特的电子邮件我该怎么做?
像这样的声明:
SELECT count(email) FROM orders
给我总数。
我试过SELECT DISTINCT count(email) FROM orders
但这似乎并没有给我我期望的数字。
采用
SELECT count( DISTINCT(email) ) FROM orders
Distinct 提供唯一的电子邮件 ID,然后简单地计算它们。
SELECT count(DISTINCT(email)) FROM orders
它与您的帖子不同,因为它在计算之前过滤掉了重复项
接受的灵魂对我不起作用 - 它为表中的每个唯一电子邮件地址返回一个“1”。
这是我必须做的才能获得所需的信息:
select email, count(email) AS total from sysAccessLog group by email order by total desc
它返回电子邮件地址列表和出现次数。
为了获得最佳性能,您应该使用:
SELECT
sub.email,
count(1) as 'count_unique'
FROM
(SELECT email FROM orders GROUP by email) sub