嗨,伙计们,我有一个postgres表,有一列表示事件,一列表示序列。每个事件可能有多个序列。例如:

Event  |   Sequence
a      |    1
a      |    4
a      |    5
b      |    1
b      |    2

现在我知道select min(sequence)group by event给出了最小序列。如何得到最小值之后的下一个值。我希望这有道理。提前谢谢。
我用的是Postgres9.3。

最佳答案

您可以使用ROW_NUMBER()Event划分和按Sequence排序来获得每个事件的第二个最低序列号;

SELECT Event, Sequence
FROM (
  SELECT Event, Sequence,
         ROW_NUMBER() OVER (PARTITION BY Event ORDER BY Sequence) rn
  FROM Table1
) z
WHERE rn = 2;

An SQLfiddle to test with

关于sql - 在Postgres中找到min + 1,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/36416918/

10-13 08:13