0

州ごとにグループ化された個別の数の電子メール アドレスを取得しようとしている mysql 行があります。そして、それは奇妙な値を与えているようです。

各州に対して次のことを行うと(州ごとに異なるメールアドレスを数えます)

SELECT COUNT(DISTINCT(email_address)) as COUNT 
FROM entries 
WHERE subscribe='1' 
AND province='ns'

それらをすべて合計します。私がちょうどやった場合、私は約200以上の数を取得します

SELECT COUNT(DISTINCT(email_address)) as COUNT 
FROM entries 
WHERE subscribe='1'

これも一致します

SELECT COUNT(DISTINCT(email_address)) as COUNT 
FROM entries 
WHERE subscribe='1' 
AND province IN('ns','nb','pei')

しかし一致しない

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

私が行った場合

SELECT COUNT(DISTINCT(email_address)) as COUNT 
FROM entries 
WHERE subscribe='1'

したがって、2 番目と 4 番目が一致し、1 番目と 3 番目と 5 番目が一致します。しかし、2 番目/4 番目は 1 番目/3 番目/5 番目よりも 200 多いです。

私が欲しいのは、サブスクライブが州ごとにグループ化された 1 である個別の電子メール アドレスの数だけです。しかも手に入らないそうです。

4

1 に答える 1

0

メールアドレスが複数の州に関連付けられている可能性はありますか? これをテストするクエリを実行できます

SELECT email_address, count(distinct province)
FROM entries
WHERE subscribe = '1'
GROUP BY email_address HAVING count(distinct province) > 1

それがあなたの矛盾が入ってくるところかもしれません

いずれにせよ、このクエリはあなたが探しているものを提供します

SELECT province, COUNT(DISTINCT email_address) as COUNT 
FROM entries 
WHERE subscribe = '1' 
GROUP BY province
ORDER BY province
于 2013-03-11T18:00:32.573 に答える