【发布时间】:2020-07-22 06:28:23
【问题描述】:
我正在寻找一系列负数/正数。假设我有一个包含两列的表:order_time 和 win,其中 order_time 是日期,win 是 +1 或 -1。我想在“win”列中找到最大的负值系列。我知道如何在 Python 中做到这一点,但我想在 postgres 中做到这一点,而不是去其他环境。
例子
order_time wins
2020-01-02 17:12:19 0
2020-01-02 17:12:19 0
2020-01-02 21:02:15 1
2020-01-03 02:40:56 1
2020-01-03 10:38:39 0
2020-01-03 10:38:44 0
2020-01-03 10:38:44 1
2020-01-03 10:38:44 0
2020-01-03 10:58:32 1
2020-01-03 11:18:13 1
2020-01-03 11:18:35 1
输出
order_time wins s
2020-01-02 17:12:19 0 1
2020-01-02 17:12:19 0 2
2020-01-02 21:02:15 1 1
2020-01-03 02:40:56 1 2
2020-01-03 10:38:39 0 1
2020-01-03 10:38:44 0 2
2020-01-03 10:38:44 1 1
2020-01-03 10:38:44 0 1
2020-01-03 10:58:32 1 1
2020-01-03 11:18:13 1 2
2020-01-03 11:18:35 1 3
然后我会找到 s 列的最大值
【问题讨论】:
-
用你想要的输出提供样本数据
-
你的意思是连续的正数还是负数?日期重要不重要?
-
您的示例没有负数。您的意思是
0而不是-1? -
尝试使用LAG- 函数写一些东西。
-
a_horse_with_no_name - 是的,您是对的,给您带来的不便,我们深表歉意。
标签: sql postgresql gaps-and-islands