2017-07-02 11 views
0

我正在尝试编写一个select语句,使我能够查看整个时间段,如果约束至少为真一次。附件是我正在使用的表格的片段。特色是称为A042和A043(mytable.pot),date_time(mytable.dags),约束条件,布尔值,钒浓度(mytable.V_low)和行号(mytable.Rn)的铝电解槽。 My table正如你看到的约束是真实的只有9天的时间为A042功能的3天,但我希望查询返回约束之前和之后的所有日期1.换句话说,如果它至少有一次,它应该返回给定锅的整个9天期限。当列中至少有一个值为真时,在一个组中选择整个时间段

原因是有很多盆要检查,这个值通常是0.因此,当检测到异常时,我需要给定锅的整个周期的报告。在此处显示的示例中,它应该仅返回A042罐的9天期限,因为所有A043天的约束条件都为0。

如何创建另一个列(mytable.Low_period),这个列对于所有A042的日子都是1,而对于所有A043都是0,这样我就可以轻松地结束语句(其中mytable.Low_period = 1) ?其他建议也是受欢迎的。

我没有管理员权限来创建过程和/或更改表。

在此先感谢

My table

+0

如果您不能建立/变更表,那么你就不能创建另一列。也许你正在寻求一个选择查询的帮助。我建议你提供一个你迄今为止已经尝试过(你的查询)的例子,以及对它没有用的东西。另外,如果您可以提供所需的结果,那将会有所帮助。最后,将数据示例作为内联文本提供比图像更好。 – Degan

回答

0

一种方法是使用窗口功能:

select t.* 
from (select t.*, max(v_low) over (partition by pot) as max_v_low 
     from t 
    ) t 
where max_v_low > 0; 
+0

太棒了!谢谢,正是我想要的。 –

相关问题