I have two queries, the one returns output:
id | faults | avg_duration
--------------------------
x | 55 | 45.3
y | 102 | 11.2
z | 333 | 25.3
the other:
id | connection | duration
-----------------------
x | 12 | 10
y | 55 | 25
z | 77 | 36
The above queries use a where clause in order to define the time stamp (start,end) i.e. where Start_date between to_date ('01/01/2011 10:10:00', 'dd/mm/yyyy 24hr:mm:ss') and to_date ('01/02/2011 10:10:00', 'dd/mm/yyyy 24hr:mm:ss') = 1 month duration
I want to insert the two results in a new table like this, assuming that the table already exists:
start_date | id | faults |avg_duration| connection | duration
-------------------------------------------------------------------------
01/01/2011 10:10:00 | x | 55 | 45.3 | 12 | 10
01/01/2011 10:10:00 | y | 102 | 11.2 | 55 | 25
01/01/2011 10:10:00 | z | 333 | 25.3 | 77 | 36
Each time the duration of the queries changes, the above table will be updated with the new data:
start_date | id | faults |avg_duration| connection | duration
-------------------------------------------------------------------------
01/01/2011 10:10:00 | x | 55 | 45.3 | 12 | 10
01/01/2011 10:10:00 | y | 102 | 11.2 | 55 | 25
01/01/2011 10:10:00 | z | 333 | 25.3 | 77 | 36
01/05/2011 10:10:00 | x | 开发者_如何学编程10 | 4500 | 41 | 100
01/05/2011 10:10:00 | y | 100 | 5000 | 41 | 250
01/05/2011 10:10:00 | z | 300 | 2000 | 71 | 360
I would do something like this:
INSERT
INTO new_table
SELECT q1.start_date, q1.id, q1.faults, q1.avg_duration, q2
FROM (query 1) q1,
(query 2) q2
WHERE q1.id = q2.id -- (or do a join above)
AND -- if you want to exclude duplication
NOT EXISTS (SELECT 1
FROM new_table a
WHERE a.start_date = q1.start_date
AND a.id = q1.id ... etc ...
)
I think that would work. This is coming from a slightly hazy brain at the moment, but the point it makes should be valid -- just combine your two queries together and treat them as two tables being joined, and then insert the results from that into your new table (avoiding duplicates if required).
加载中,请稍侯......
精彩评论