一点点MySQL的神秘面纱

时间:2012-12-11 20:11:20

标签: mysql

我有一个表,其中包含一系列条目(标准内容,电子邮件,姓名,城市等)以及用于通知他们未来内容的订阅选项。

我想知道每个省选择了多少(订阅字段为1)。我也试图导出那个巨大的列表不同的电子邮件地址。

所以我有以下两个查询

从表中获取所有值以进行导出。

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个结果,第二个查询加起来为1136个结果。所以有12个条目即将到来。

我怎样才能弄清楚我的查询有什么问题或存在什么问题?

1 个答案:

答案 0 :(得分:2)

您的问题是您在各省都有一些重复的电子邮件地址。

第一个查询消除了所有重复的电子邮件地址。第二个查询只会消除给定省份中重复的电子邮件地址

如果您不关心重复的电子邮件是哪个省,您可以删除重复的内容,如下所示:

SELECT province, COUNT(email_address)
FROM (
  SELECT email_address, MAX(province) as province
  FROM entries
  GROUP BY email_address
)
GROUP BY province