このエラーが発生しましたが、その処理方法がわかりません。簡単な説明をいただければ幸いです。エラー:
1140: GROUP BY 句がない場合、GROUP 列 (MIN()、MAX()、COUNT()、...) を GROUP 列なしで混在させることはできません - SELECT
records_found
FROM (emails
) WHERE
このエラーが発生しましたが、その処理方法がわかりません。簡単な説明をいただければ幸いです。エラー:
1140: GROUP BY 句がない場合、GROUP 列 (MIN()、MAX()、COUNT()、...) を GROUP 列なしで混在させることはできません - SELECT
records_found
FROM (emails
) WHERE
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'
集計関数 (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'
出力に電子メールがありますが、それによってグループ化されていません。WHERE 句に含まれているため、出力から email 列を削除する可能性が最も高くなります。
SELECT COUNT(*) AS records_found FROM (メール) WHERE メール = 'メールアドレス'