gpt4 book ai didi

sql - SQL-GROUP BY和COALESCE的丑陋组合

转载 作者:行者123 更新时间:2023-12-04 16:29:38 28 4
gpt4 key购买 nike

我有一张表,其数据类似于以下内容:

[ID],[状态],[foo],[DateCreated],[DateUpdated]

我从事此工作的时间越长,我的SQL就越难看,这表明我可能做错了什么。我想要的是每个州的唯一列表,只要foo对于该州始终是相同的(如果foo对于该州中的所有记录都不相同,那么我根本就不需要该州)。另外,我想COALESCE DateCreated和DateUpdated并想要该状态的最大值。

因此,鉴于此数据:

[ID], [State], [foo], [DateCreated], [DateUpdated]
1, MA, data1, 05/29/2012, 06/02/2012
2, MA, data1, 05/29/2012, 06/03/2012
3, RI, data2, 05/29/2012, NULL
4, RI, data3, 05/29/2012, NULL
5, NH, data4, 05/29/2012, NULL
6, NH, data4, 05/29/2012, 06/05/2012

我只想要这些结果:
[State], [foo], [LastUpdated]
MA, data1, 06/03/2012
NH, data4, 06/05/2012

得到我所追求的东西的最优雅的方法是什么?

最佳答案

一个带有嵌套查询的简单Group by就足够了:

Select State, coalesce(max_created,max_updated) from (
Select State, min(foo) as min_foo, max(foo) as max_foo,
max(DateCreated) as max_created,
max(DateUpdated) as max_updated
From Data
Group by State)
Where min_foo = max_foo

关于sql - SQL-GROUP BY和COALESCE的丑陋组合,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11418870/

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