gpt4 book ai didi

MySQL 在 GROUPing BY 时压缩空字段

转载 作者:行者123 更新时间:2023-11-29 07:11:41 24 4
gpt4 key购买 nike

如果我有一个像这样的 MySQL 表,其中有两行代表特定的电子邮件地址,每行都不完整,但一起形成完整的记录:

+-------+-------+------------------+
| fname | sname | email |
+-------+-------+------------------+
| John | | john@smith.com |
| | Smith | john@smith.com |
| Sue | Jones | sue@jones.com |
| Jim | | jim@jim.com |
+-------+-------+------------------+

我可以使用 GROUP BY 运行以下查询,以返回不同的电子邮件地址并接收 John Smith 的 fnamesname:

SELECT *
FROM users
GROUP BY email

+-------+-------+------------------+
| fname | sname | email |
+-------+-------+------------------+
| John | | john@smith.com |
| Sue | Jones | sue@jones.com |
| Jim | | jim@jim.com |
+-------+-------+------------------+

有什么方法可以合并行中的空白字段(类似于COALESCESELECTing时与null一起工作的方式)相反给我以下结果?

+-------+-------+------------------+
| fname | sname | email |
+-------+-------+------------------+
| John | Smith | john@smith.com |
| Sue | Jones | sue@jones.com |
| Jim | | jim@jim.com |
+-------+-------+------------------+

最佳答案

使用 max() 获取每封电子邮件的“最高”值

SELECT email, 
max(fname) as fname,
max(sname) as sname
FROM users
GROUP BY email

关于MySQL 在 GROUPing BY 时压缩空字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39474506/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com