0

このエラーが発生しましたが、その処理方法がわかりません。簡単な説明をいただければ幸いです。エラー:

1140: GROUP BY 句がない場合、GROUP 列 (MIN()、MAX()、COUNT()、...) を GROUP 列なしで混在させることはできません - SELECT email, COUNT(*) AS records_foundFROM ( emails) WHERE email= '電子メールアドレス'

4

3 に答える 3

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'
于 2009-11-11T01:35:58.280 に答える
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'
于 2009-11-11T01:36:27.053 に答える
0

出力に電子メールがありますが、それによってグループ化されていません。WHERE 句に含まれているため、出力から email 列を削除する可能性が最も高くなります。

SELECT COUNT(*) AS records_found FROM (メール) WHERE メール = 'メールアドレス'

于 2009-11-11T01:36:51.030 に答える