【发布时间】:2018-08-15 13:43:12
【问题描述】:
给定一个像这样的数据表:
+-----+-------------+--------+
| id | end | status |
+-----+-------------+--------+
| a | 07-FEB-2018 | 1 |
| a | 08-FEB-2018 | 2 |
| a | 08-FEB-2018 | 3 |
| b | 06-MAR-2018 | 2 |
| b | 08-SEP-2018 | 3 |
+-----+-------------+--------+
在 Oracle SQL 中,可以构造一个查询,该查询将为每个 id 返回最大结束日期的最小状态(可能有多个行具有相同的最大结束日期)。
所以在这个例子中,这将被返回:
+-----+--------+
| id | status |
+-----+--------+
| a | 2 |
| b | 3 |
+-----+--------+
我一直在查看 FIRST_VALUE 和 PARTITION BY,但我很难理解它们是如何工作的,以及它们是否是我所需要的,因此我并没有真正得到任何结果。
任何帮助将不胜感激!
【问题讨论】:
-
为表明问题的问题提供适当的标题。 “构造查询”太笼统了。
-
如果你能推荐一个更好的标题,我会很乐意改变它(如果可以的话)。部分问题是不知道我正在尝试做的事情的技术名称
标签: sql oracle greatest-n-per-group