[英]MySQL select multiple distinct values
我在 MySQL 数据库中有列电子邮件、城市、地址、州、国家。 一些电子邮件有多个地址。(多个地址和状态)- 具有相同电子邮件的不同地址的不同行。 我希望我的结果集显示不同电子邮件和状态的计数,并根据状态对计数进行分组。
我试过这样的东西——
select count(distinct(email), state from A group by state
但由于多个地址,同一封电子邮件出现在多个状态。 如何使电子邮件仅显示在任何一个州? 有人可以帮忙吗?
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
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;
感谢您的帮助。 这个查询回答了我的问题。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.