我收到了这个错误,我不确定如何使用它。很简单的解释将非常感激。错误:
1140:如果没有GROUP BY子句 - SELECT
records_found
FROM(emails
)WHERE
答案 0 :(得分:1)
除非包含group by子句,否则不能将聚合函数(如count(*))与非聚合列(如电子邮件)一起使用。我假设您打算尝试获取电子邮件表中每个不同电子邮件的计数,这需要在您的查询中添加group by子句,如下所示:
select email, count(*) as records_found
from (emails)
where email = 'Email Address'
group by email
鉴于您使用的where子句将确保单独的电子邮件,您可能想知道为什么需要它 - 您也可以简单地在电子邮件列中添加聚合函数,因为您知道它是不同的:
select max(email), count(*) as records_found
from (emails)
where email = 'Email Address'
答案 1 :(得分:1)
如果要使用聚合函数(MIN,MAX,COUNT),则需要向MySQL提供有关执行聚合的列的信息。例如,在您的情况下,您应该使用
SELECT email, COUNT(*) AS records_found FROM (emails) GROUP BY email
获取每个电子邮件地址的行数,或者如果您只是查找具有给定地址的多个行,请执行以下操作:
SELECT COUNT(*) AS records_found FROM (emails) WHERE email = 'Email Address'
答案 2 :(得分:0)
您在输出中有电子邮件,但您没有按其分组。您很可能希望从输出中删除电子邮件列,因为您在WHERE子句中有它:
SELECT COUNT(*)AS records_found FROM(电子邮件) 电子邮件='电子邮件地址'