我有以下不同的工作查询单独运行,我想在一个go中运行所有这些查询,并在PostGreSQL中使用一些存储过程或任何可用的方法。
SELECT obu_id, trip_id, start_time, end_time, end_time - LEAD(start_time) OVER(PARTITION BY obu_id ORDER BY start_time) AS diff FROM clean_trips_byobu;
下一个查询
UPDATE clean_trips_byobu c
SET dwell_time = COALESCE(u.diff, interval '-1 hour')
FROM (SELECT obu_id, trip_id, start_time, end_time,end_time - lead(start_time) OVER (PARTITION BY obu_id ORDER BY start_time) AS diff FROM clean_trips_byobu) u
WHERE (c.obu_id, c.trip_id, c.start_time, c.end_time)
=(u.obu_id, u.trip_id, u.start_time, u.end_time)
AND c.dwell_time IS DISTINCT FROM COALESCE(u.diff, interval '-1 hour');
下一个查询
UPDATE public.clean_trips_byobu
SET trip_dist = clean_trips.bktp_mt_total
FROM public.clean_trips
WHERE public.clean_trips.obu_id = clean_trips_byobu.obu_id
AND clean_trips.bktp_trip_id = clean_trips_byobu.trip_id;
我想在一个函数或过程中包含所有这些查询。
谢谢
最佳答案
编写一个存储过程,并在begin之后在该存储过程中写入所有查询
关于sql - 如何创建过程以一次性运行不同的查询,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/17350625/