2014-02-14 94 views
0

我想從一個表中插入一個聚合值到其他使用Update子句。這是我做的。從其他表中更新的表中的聚合值

SELECT Sum(1.0 * volume * speed)/Sum(volume) AS aggregated_speed 
FROM traffic_data_replica 
GROUP BY date, 
      id 
ORDER BY date; 

我想在其他表中更新此值。這是我所嘗試過的。

UPDATE traffic_data_aggregated_lanes 
SET traffic_data_aggregated_lanes.aggregated_speed = (SELECT 
       Sum(1.0 * volume * 
        speed)/Sum(volume) AS aggregated_speed 
                 FROM 
     traffic_data_replica 
                 GROUP BY date, 
                    id 
                 ORDER BY date); 

請幫助

+0

「這就是我所做的」和「這裏是我所嘗試的」 - **和**?發生了什麼?鑑於我們沒有您的表格或數據,這不像我們可以自己嘗試。你需要告訴我們發生了什麼事情,你希望發生什麼,有什麼區別,等等。 –

回答

0

關係尚不清楚。 有點

Merge traffic_data_aggregated_lanes a 
using (select id, sum(1.0*volume*speed)/sum(volume) as aggregated_speed from 
traffic_data_replica group by date,id) b 
on a.id=b.id 
when matched then 
update set a.aggregated_speed= b.aggregated_speed 
+1

我們可以加入這兩個表的列是什麼?請提供這些表的模式 –

0

我們可以通過CTE去還我不知道的數據。 所以我給你假設結果

WITH CTE AS (
select t.Id,sum(1.0*volume*speed)/sum(volume) as aggregated_speed from traffic_data_replica t 
group by date,id order by date 
) 
Select * FROM CTE 
update traffic_data_aggregated_lanes set traffic_data_aggregated_lanes.aggregated_sp= t.aggregated_speed From traffic_data_replica t 
INNER JOIN CTE c ON C.Id = t.Id 
相關問題