1

私は別々に実行されているさまざまな作業クエリをフォローしており、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;

これらすべてのクエリを 1 つの関数またはプロシージャに含めたいと考えています。

ありがとう

4

1 に答える 1

1

ストアド プロシージャを記述し、開始後にそのストアド プロシージャにすべてのクエリを記述します。

于 2013-06-27T18:54:16.107 に答える