Hi! Could we please enable some services and cookies to improve your experience and our website?
No, thanks.
Okay!
SQLize
Online
/
PHPize Online
/
SQLtest Online
A
A
A
Share code
Donate
Blog
Popular
FAQ
Donate
A
A
A
Share
Blog
Popular
FAQ
Online Sandbox for SQL and PHP: Write, Run, Test, and Share SQL Queries and PHP Code
SQL code:
Upload
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
SQL
Server:
MySQL 8.0
MySQL 8.0 Sakila (ReadOnly)
MySQL 9.3.0
MariaDB 11.4
MariaDB 11.8
MariaDB 10
MariaDB 10 Sakila (ReadOnly)
SQLite 3
SQLite 3 Preloaded
PostgreSQL 10 Bookings (ReadOnly)
PostgreSQL 13
PostgreSQL 14
PostgreSQL 15
PostgreSQL 16
PostgreSQL 17
MS SQL Server 2017
MS SQL Server 2019
MS SQL Server 2022
MS SQL Server 2022 AdventureWorks (ReadOnly)
Firebird 4.0
Firebird 4.0 (Employee)
Oracle Database 19c (HR)
Oracle Database 21c
Oracle Database 23c Free
SOQOL
Version
ER Diagram
Preserve result
Stuck with a problem?
Got Error?
Ask ChatGPT!
Result:
Copy
Clear