我在MySQL数据库中有列电子邮件,城市,地址,州,国家/地区。 一些电子邮件具有多个地址。(多个地址和状态) - 具有相同电子邮件的不同地址的不同行。 我希望我的结果集显示不同的电子邮件和状态的计数,并根据状态对计数进行分组。
我试过像 -
这样的东西select count(distinct(email), state from A group by state
但由于多个地址,同一电子邮件会显示在多个状态中。 如何仅在任何一个州上显示电子邮件? 有人可以在这帮忙吗?
答案 0 :(得分:0)
DISTINCT
不能包含两个操作数。您可以使用GROUP BY
。
select email, state from A group by email, state
如果您需要上述COUNT,可以将其放在子查询中。
SELECT COUNT(*) FROM
(select email, state from A group by email, state) TBL
答案 1 :(得分:0)
select f.email, f.state, f.id from(
select email, max(id) as maxid
from addresses where country= 'US'
group by email) as x inner join addresses as f on f.email=x.email and f.id=x.maxid;
感谢您的帮助。这个问题回答了我的问题。