【问题标题】:Updating the data from two table更新两个表的数据
【发布时间】:2023-01-11 23:52:12
【问题描述】:

我试图通过将 t1 值乘以 t2 值来更新表中的某些值。这是我为更新数据而编写的查询。由于某些原因,更新值需要很长时间。我可以有一些简化的查询来更新相同的数据以提高查询的性能吗?

update dm_digital_media.dim_dummy sub
set sub.SUBS_ONE_TIME_TOTAL_USD = sub.SUBS_ONE_TIME_TOTAL_LOCAL_CURR * nvl(exch.exchange_rate,1) 
from dm_digital_media.dim_dummy sub1
inner join dm_digital_media.rate_dim exch on exch.exchange_source = sub1.currency
where sub.START_DATE < '2018-01-01'
  and exch.exchange_target = 'USD'
  and exch.begin_effect_date = '2018-01-01'
  and exch.exchange_period = 'Monthly';

【问题讨论】:

    标签: sql snowflake-cloud-data-platform


    【解决方案1】:

    你能试试下面的SQL吗?我用 CTE 稍微修改了一下。

    with exch as (
    select exchange_source,nvl(exch.exchange_rate,1) exchange_rate from dm_digital_media.rate_dim exch where  exch.exchange_target = 'USD' and exch.begin_effect_date = '2018-01-01' and exch.exchange_period = 'Monthly'
    )
    update dm_digital_media.dim_dummy sub set sub.SUBS_ONE_TIME_TOTAL_USD = sub.SUBS_ONE_TIME_TOTAL_LOCAL_CURR * exchange_rate
    from dm_digital_media.dim_dummy sub1 
    inner join exch on exch.exchange_source = sub1.currency 
    where sub.START_DATE < '2018-01-01' ;
    

    【讨论】:

      猜你喜欢
      • 2019-12-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-01-21
      • 2013-07-04
      相关资源
      最近更新 更多