15. MERGE文
15
postgres=> MERGE INTO dst1 AS d USING
src1 AS s ON d.c1 = s.c1
WHEN MATCHED THEN
UPDATE SET c2 = s.c2
WHEN NOT MATCHED THEN
INSERT VALUES (s.c1, s.c2) ;
MERGE 2
16. MERGE文
16
postgres=> MERGE INTO dst1 AS d USING
src1 AS s ON d.c1 = s.c1
WHEN MATCHED THEN
UPDATE SET c2 = s.c2
WHEN NOT MATCHED THEN
INSERT VALUES (s.c1, s.c2) ;
MERGE 2
postgres=> MERGE INTO dst1 AS d USING
src1 AS s ON d.c1 = s.c1
WHEN MATCHED AND s.c1 < 1000 THEN
DELETE
WHEN NOT MATCHED THEN
DO NOTHING ;
MERGE 2
20. マルチ範囲型への集約
20
(range_agg() を使?して多重範囲型データに集約する)
db1=# SELECT empid, range_agg(vacation_days) FROM
t_vacation
GROUP BY empid ORDER BY empid;
empid | range_agg
-------+-----------------------------------------------
----
101 | {[2022-08-08,2022-08-11),[2022-08-15,2022-08-17)}