【发布时间】:2017-01-01 10:49:09
【问题描述】:
我有以下问题:
我有一个包含两种类型数据的表。一个状态 = 1,一个状态 = 2。对于状态 = 2 的每一行,我需要状态 = 1 的最后一个对应日期。这是一个示例:
date state id
'2016-04-03' 1 1
'2016-04-04' 1 1
'2016-04-05' 2 1
'2016-04-06' 2 1
预期结果:
date lastdate state id
'2016-04-03' '2016-04-03' 1 1
'2016-04-04' '2016-04-04' 1 1
'2016-04-05' '2016-04-04' 2 1
'2016-04-06' '2016-04-04' 2 1
'2016-04-07' '2016-04-07' 1 1
我不完全知道我被困在哪里。感觉这个问题你看错了,所以感谢任何帮助。
提前谢谢!
编辑
似乎我没有很好地解释我的问题,这是另一个尝试:
对于每一行,我需要具有相同 id 且 state = 1 的最后一行的日期。如果 state 已经为 1,则需要同一行的日期。
所以要澄清我的“预期结果” - 表:
date lastdate state id
'2016-04-03' '2016-04-03' 1 1
状态为 1,因此行日期是状态 1 的最后日期
'2016-04-04' '2016-04-04' 1 1
状态为 1,因此行的日期是状态 1 的最后日期
'2016-04-05' '2016-04-04' 2 1
状态为 2,因此日期为 1 的最后一行的日期来自前一行
'2016-04-06' '2016-04-04' 2 1
state 为 2,state = 1 的最后日期为 '2016-04-04'
'2016-04-07' '2016-04-07' 1 1
状态再次为 1,所以日期相同
'2016-04-08' '2016-04-07' 2 1
state 为 2,因此设置了最后一行(前一行)的日期
我希望我的意图现在可以理解了。
【问题讨论】:
-
请试着澄清你真正想要的东西。你对你想要什么的描述和你给出的例子似乎完全不同。
-
尽我所能;-)
-
好的,现在我明白你想要什么了.. 我不完全确定这只能使用 sql 但我会考虑一下
标签: mysql database postgresql select