2017-07-02 50 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

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

相關問題