我想更新列c1,c2,c3上每個分組日期列的列c5(至1),其中c3在相同c1,c2組中最大。正與HQL對Oracle數據庫的工作有條件地基於特殊組hql中列的最大值更新
c1 | c2 | c3 | c4 | c5 | c5 after update
2000 | a | 01 | x | 0 | 0
2000 | a | 01 | y | 0 | 0
2000 | a | 01 | z | 0 | 0
2000 | a | 02 | z | 0 | 1
2000 | a | 02 | x | 0 | 1
...........................
2000 | b | 01 | x | 0 | 0
2000 | b | 01 | y | 0 | 0
2000 | b | 01 | z | 0 | 0
2000 | b | 02 | z | 0 | 1
..........................
..........................
2001 | a | 01 | x | 0 | 0
2001 | a | 01 | y | 0 | 0
2001 | a | 01 | z | 0 | 0
2001 | a | 02 | z | 0 | 0
2001 | a | 02 | x | 0 | 0
2001 | a | 02 | y | 0 | 0
2001 | a | 02 | w | 0 | 0
2001 | a | 03 | y | 0 | 1
2001 | a | 03 | w | 0 | 1
...........................
2001 | b | 01 | x | 0 | 0
2001 | b | 01 | y | 0 | 0
2001 | b | 02 | x | 0 | 1
2001 | b | 02 | z | 0 | 1
非常感謝。我希望hql,但我認爲我不能用hql編寫它,並且必須使用sql,因爲您回答了我...但是您是否可以編輯您的答案以將c5更新爲特定數字(0或1)? (我不想選擇...我想更新) – faraa
哦。我錯過了更新的一部分。正如它已經由上面的mathguy寫的,所以你可以檢查。它會爲你工作,但是你需要在ddl中將'c5'列設置爲'default 0'。 – zarruq
因此我無法使用您的查詢(進行一些修改)來更新? – faraa