Hi! Could we please enable some services and cookies to improve your experience and our website?

SQLize Online / PHPize Online  /  SQLtest Online

A A A
Share code      Blog   Popular   FAQ

Online Sandbox for SQL and PHP: Write, Run, Test, and Share SQL Queries and PHP Code

Copy Format Clear
Create schema ch_spp_shps3_skif; CREATE TABLE ch_spp_shps3_skif.opc_2tags_pb ( id SERIAL4 PRIMARY KEY, datakey VARCHAR(255) NOT NULL, datavalue VARCHAR(255), datats INT8 ); insert into ch_spp_shps3_skif.opc_2tags_pb(datakey, datavalue, datats) values('1', 'v1', 1749451566584), ('2', 'v2', 1749451566584), ('3', 'v3', 1749451566584); CREATE TABLE ch_spp_shps3_skif.v_opc_2tags_pb ( id serial4 PRIMARY KEY, opc_2tags_pb_id int8 REFERENCES ch_spp_shps3_skif.opc_2tags_pb(id), datakey varchar(255), value varchar(255), date timestamptz ); CREATE PROCEDURE ch_spp_shps3_skif.refresh_v_opc_2tags_pb() LANGUAGE plpgsql AS $$ DECLARE now_date date := now()::date + interval '1 day'; start_date timestamp := now_date - interval '1 day'; end_date timestamp := now_date - interval '1 second'; BEGIN WITH filtered AS ( SELECT * FROM ch_spp_shps3_skif.opc_2tags_pb WHERE to_timestamp(datats / 1000) BETWEEN start_date AND end_date ), ranked AS ( SELECT *, ROW_NUMBER() OVER ( PARTITION BY datakey ORDER BY datats DESC ) AS rn FROM filtered ) INSERT INTO ch_spp_shps3_skif.v_opc_2tags_pb (opc_2tags_pb_id, datakey, value, date) SELECT id, datakey, datavalue, to_timestamp(datats / 1000):: timestamptz as date FROM ranked WHERE rn = 1; END; $$; call ch_spp_shps3_skif.refresh_v_opc_2tags_pb(); CREATE OR REPLACE PROCEDURE ch_spp_shps3_skif.refresh_v_opc_2tags_pb2() LANGUAGE plpgsql AS $$ DECLARE now_date date := now()::date + interval '2 day'; start_date timestamp := now_date - interval '1 day'; end_date timestamp := now_date - interval '1 second'; BEGIN WITH filtered AS ( SELECT * FROM ch_spp_shps3_skif.opc_2tags_pb WHERE to_timestamp(datats / 1000) BETWEEN start_date AND end_date ), ranked AS ( SELECT *, ROW_NUMBER() OVER ( PARTITION BY datakey ORDER BY datats DESC ) AS rn FROM filtered ) INSERT INTO ch_spp_shps3_skif.v_opc_2tags_pb (opc_2tags_pb_id, datakey, value, date) SELECT id, datakey, datavalue, to_timestamp(datats / 1000):: timestamptz as date FROM ranked WHERE rn = 1; END; $$; insert into ch_spp_shps3_skif.opc_2tags_pb(datakey, datavalue, datats) values ('1', 'v1_2', 1749551566584), ('2', 'v2_2', 1749551566584), ('2', 'v2_22', 1749558566584), ('2', 'v2_21', 1749581566584), ('3', 'v3_2', 1749551566584); call ch_spp_shps3_skif.refresh_v_opc_2tags_pb2(); insert into ch_spp_shps3_skif.opc_2tags_pb(datakey, datavalue, datats) values ('1', 'v1_3', 1749671566584); CREATE OR REPLACE PROCEDURE ch_spp_shps3_skif.refresh_v_opc_2tags_pb3() LANGUAGE plpgsql AS $$ DECLARE now_date date := now()::date + interval '3 day'; start_date timestamp := now_date - interval '1 day'; end_date timestamp := now_date - interval '1 second'; BEGIN WITH filtered AS ( SELECT * FROM ch_spp_shps3_skif.opc_2tags_pb WHERE to_timestamp(datats / 1000) BETWEEN start_date AND end_date ), ranked AS ( SELECT *, ROW_NUMBER() OVER ( PARTITION BY datakey ORDER BY datats DESC ) AS rn FROM filtered ) INSERT INTO ch_spp_shps3_skif.v_opc_2tags_pb (opc_2tags_pb_id, datakey, value, date) SELECT id, datakey, datavalue, to_timestamp(datats / 1000):: timestamptz as date FROM ranked WHERE rn = 1; END; $$; call ch_spp_shps3_skif.refresh_v_opc_2tags_pb3(); select * from ch_spp_shps3_skif.v_opc_2tags_pb

Stuck with a problem? Got Error? Ask ChatGPT!