簡體   English   中英

在每個組的行上更新,在另一列中更新最大值

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM