【问题标题】:MySQL select multiple distinct valuesMySQL选择多个不同的值
【发布时间】:2018-07-31 08:59:57
【问题描述】:

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

我尝试过类似的东西-

select count(distinct(email), state from A group by state

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

【问题讨论】:

  • 我认为样本数据和期望的结果将真正帮助我们了解您想要做什么。

标签: mysql sql count mysql-workbench distinct


【解决方案1】:

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

【讨论】:

    【解决方案2】:
    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;
    

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

    【讨论】:

      猜你喜欢
      • 2016-05-03
      • 2011-02-16
      • 1970-01-01
      • 2011-04-14
      • 1970-01-01
      • 1970-01-01
      • 2017-03-25
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多