【发布时间】:2020-10-08 19:43:27
【问题描述】:
在 Oracle 数据库中,我有一个内容类似于以下内容的表:
Market_Intro_Date Change_Date Author
-------------------------------------------
01.06.2025 10.07.2020 Meyer *
01.01.2025 30.06.2020 Harrin
01.01.2025 01.05.2020 Floyd
01.01.2025 15.04.2020 Peterson *
01.12.2024 20.03.2020 George
01.12.2024 10.03.2020 Smith
01.12.2024 15.01.2020 George *
01.01.2025 15.12.2019 Lee
01.01.2025 01.11.2019 Alfonso
01.01.2025 10.10.2019 Peterson *
01.07.2025 30.09.2019 Smith *
01.07.2024 20.09.2019 Lee
01.07.2024 10.09.2019 Meyer
01.07.2024 01.05.2019 Smith *
我需要一个 SQL 查询,该查询将返回市场引入日期的每次更改的第一次出现(最后用 * 标记)以及更改日期和作者。
所以查询的结果是:
Market_Intro_Date Change_Date Author
-------------------------------------------
01.06.2025 10.07.2020 Meyer
01.01.2025 15.04.2020 Peterson
01.12.2024 15.01.2020 George
01.01.2025 10.10.2019 Peterson
01.07.2024 01.05.2019 Smith
提前谢谢你
【问题讨论】:
-
你为什么用“01.01.2025”和彼得森标记2行?看起来应该是
01.07.2025 30.09.2019 Smith而不是01.01.2025 15.04.2020 Peterson -
看起来彼得森的两行都应该在那里;但是否也应包括 01.07.2025/30.09.2019/Smith(并标有星号),还是该日期应该是 2024 年?
-
@SayanMalakshinov:有趣的不是每个市场引入日期的定义,而是变化发生的时间。
-
@AlexPoole:那是个错误。我纠正了它。谢谢你的提示!
-
所以彼得森不应该出现两次,但史密斯应该出现?这就是我回答中的第一个查询所做的;但是为什么彼得森(仅)在您的输出中反对 15.04.2025 而不是 10.10.2024;顺便说一句,这与星号不匹配。我更不确定你到底想要什么。