1

たくさんのエントリ(標準のもの、電子メール、名前、都市など)と、将来のものについて通知するためのサブスクライブオプションを含むテーブルがあります。

私は、各州がオプトインした数を調べようとしています(サブスクライブフィールドに1があります)。また、その巨大なリストの個別の電子メールアドレスをエクスポートしようとしています。

だから私は次の2つのクエリがあります

エクスポートするテーブルからすべての値を取得します。

SELECT DISTINCT(email_address), first_name, last_name, street_address, city, province, postal_code, phone FROM entries WHERE subscribe='1' GROUP BY email_address

テーブルからカウント(州|#のように見えます)を取得します。

SELECT province, COUNT(DISTINCT email_address) FROM entries WHERE subscribe='1' GROUP BY province;

今私の問題は、最初のクエリが1124結果を返し、2番目のクエリが結果に加算される1136ことです。したがって、どこかで12のエントリが登場します。

何が起きているのか、クエリなどに問題があるのか​​をどのように把握できますか?

4

1 に答える 1

2

あなたの問題は、州全体でいくつかの重複した電子メールアドレスを持っていることです。

最初のクエリは、重複するすべての電子メールアドレスを削除します。2番目のクエリは、特定の州内の重複する電子メールアドレスのみを削除します

重複する電子メールがどの州でカウントされるかを気にしない場合は、次のように重複を排除できます。

SELECT province, COUNT(email_address)
FROM (
  SELECT email_address, MAX(province) as province
  FROM entries
  GROUP BY email_address
)
GROUP BY province
于 2012-12-11T20:13:24.433 に答える