MySQL选择多个不同的值

时间:2018-02-20 21:46:22

标签: mysql sql count mysql-workbench distinct

我在MySQL数据库中有列电子邮件,城市,地址,州,国家/地区。 一些电子邮件具有多个地址。(多个地址和状态) - 具有相同电子邮件的不同地址的不同行。 我希望我的结果集显示不同的电子邮件和状态的计数,并根据状态对计数进行分组。

我试过像 -

这样的东西
select count(distinct(email), state from A group by state

但由于多个地址,同一电子邮件会显示在多个状态中。 如何仅在任何一个州上显示电子邮件? 有人可以在这帮忙吗?

2 个答案:

答案 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;

感谢您的帮助。这个问题回答了我的问题。