gpt4 book ai didi

mysql - 如何聚合 GROUP BY 查询中的非聚合值?

转载 作者:行者123 更新时间:2023-11-29 18:13:58 25 4
gpt4 key购买 nike

我有一个充满重复项的表。我正在尝试转换它们,以便可以在两个字段之间设置唯一约束(例如,identifier1identifier2)。

我想将这些重复项“折叠”为单个记录,但我的记录包含不同的字符串。在这种情况下,我想保留最后一次接触的内容(保留最高 ID 的内容并丢弃其余内容)。

例如,我可以使用 MIN() 聚合下面的 startDate ——但是如何才能只获取最近的位置

    id | identifier1 | identifier2 | location   | startDate
1 | alice | 0001 | ambridge | 2016-01-01
2 | bob | 1312 | brigadoon | 2017-01-01
3 | alice | 0001 | brigadoon | 2017-05-01
4 | bob | 9999 | brigadoon | 2015-01-01
5 | celeste | 1234 | cittegazze | 2011-01-01

id | identifier1 | identifier2 | location | startDate
6 | alice | 0001 | brigadoon | 2016-01-01
7 | bob | 1312 | brigadoon | 2017-01-01
8 | bob | 9999 | brigadoon | 2015-01-01
9 | celeste | 1234 | cittegazze | 2011-01-01

最佳答案

试试这个:

select A.identifier1, A.identifier2, A.startDate, B.Location from (
select identifier1,
identifier2,
MIN(startDate) AS startDate
from TABLE_NAME
group by identifier1, identifier2
) AS A JOIN TABLE_NAME AS B
ON (A.identifier1 = B.identifier1 and A.identifier2 = B.identifier2 and A.startDate = B.startDate)

关于mysql - 如何聚合 GROUP BY 查询中的非聚合值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47178074/

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