【问题标题】:Is it posible to select a stack of value by using MYSQL GROUP BY是否可以使用 MYSQL GROUP BY 选择一堆值
【发布时间】:2011-07-01 08:34:15
【问题描述】:

我收到了这样的查询:

SELECT email
FROM abc_table
GROUP BY email
HAVING ( COUNT(email) > 1 )

所以它会返回我:

email   
a@b.com     
c@d.com     
e@f.com

现在我需要调整查询以获得这样的结果:

email       id
a@b.com     1
a@b.com     2   
c@d.com     3
c@d.com     4
c@d.com     5
e@f.com     6

是否可以通过使用 GROUP BY HAVING 获得此结果?或者有什么建议可以得到这个结果?

非常感谢!

【问题讨论】:

  • 我猜你在某处还有(e@f.com, 7) 的一行?
  • 在不知道表中有什么的情况下,样本毫无意义。您似乎想要删除 GROUP BY?

标签: mysql group-by having


【解决方案1】:
SELECT a.email
     , a.id
FROM abc_table a
  JOIN
    ( SELECT email
      FROM abc_table
      GROUP BY email
      HAVING COUNT(email) > 1 
    ) AS ag
    ON ag.email = a.email

【讨论】:

  • 感谢您的建议。 :)
【解决方案2】:

使用 GROUP_CONCAT:

SELECT email, GROUP_CONCAT(id) FROM abc_table GROUP BY email

(编辑:误读问题)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-03-03
    • 2010-12-22
    • 1970-01-01
    • 2022-08-11
    • 2014-03-10
    • 2011-08-14
    • 1970-01-01
    相关资源
    最近更新 更多