[英]Update on row for each group with max value in other column
我必須更新非常大的表中的列。 因此,性能是一個大問題。
問題是,類似這樣的一個 ,但只能將Sybase的Adaptive Server Enterprise(ASE 12.5.4),加上我需要做檢索行的更新。 有沒有一種方法可以在沒有自我加入的情況下做到這一點,就像Oracle的最高投票答案一樣?
這是首次進行聯接的嘗試,但這是為了降低要使用的表的順序:
UPDATE table SET flag = 1
FROM table AS a1
LEFT OUTER JOIN table AS a2
ON (a1.groupId = a2.groupId AND a1.id < a2.id)
WHERE a2.groupId IS NULL
and a1.somename in ('x', 'y')
將...
UPDATE table AS t1 SET flag = 1
WHERE t1.somename IN ('x', 'y') AND
t1.id = (SELECT MAX (t2.id)
FROM table t2
WHERE t2.groupId = t1.groupId);
有什么幫助嗎?
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.