簡體   English   中英

mysql更新與db2轉換的連接

[英]Mysql update with join on db2 conversion

我有這個查詢,它的結構更多為mysql

 update metrics m join
   (select repnumber, material, item, color, sum(m2.velocity)/count(*) as avg_velocity
    from metrics m2
    group by repnumber, material, item, color
   ) m2
   using (repnumber, material, item, color)
set m.repvolocity = m2.avg_velocity;

有沒有一種方法可以更改它以使其適用於db2?

在DB2(和大多數其他數據庫)中,您將使用相關子查詢:

update metrics m
    set repvolocity = (select avg(m2.velocity)
                       from materials m2
                       where m2.repnumber = m.repnumber and m2.material = m.material and m2.item = m.item and m2.color = m.color
                      );

我應該注意,DB2還使動態計算值變得容易:

select m.*,
       avg(m.velocity) over (partition by repnumber, material, item, color) as repvelocity
from materials;

使用窗口函數,您可能會發現不需要實際存儲該值。 我應該補充一點,MySQL 8+也具有此功能。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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