Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- --Create a temporary table
- /*
- create temp table tmp_registro_anestesia(
- codigo_establecimiento varchar(16) NOT NULL,
- codigo_asignacion varchar(10) NOT NULL,
- codigo_anestesia varchar(10) NOT NULL,
- orden int4 NOT NULL,
- evento_esencial int2 NULL,
- tiempo_actual timestamp NULL,
- grupo_intra_anestesia varchar(5) NOT NULL,
- codigo_intra_anestesia int8 NOT NULL,
- valor text NULL,
- estado varchar(1) NULL,
- creacion_fecha date NULL,
- creacion_hora time NULL,
- creacion_usuario varchar(10) NULL,
- modificacion_fecha date NULL,
- modificacion_hora time NULL,
- modificacion_usuario varchar(10) NULL,
- total_segundos bigint
- )*/
- select * from tmp_registro_anestesia
- select * from hospitalario_intra_anestesia_registro
- --Insert all records to fake table with conversion
- insert
- into
- tmp_registro_anestesia
- select
- codigo_establecimiento,
- codigo_asignacion,
- codigo_anestesia,
- orden,
- evento_esencial,
- tiempo_actual,
- grupo_intra_anestesia,
- codigo_intra_anestesia,
- valor,
- estado,
- creacion_fecha,
- creacion_hora,
- creacion_usuario,
- modificacion_fecha,
- modificacion_hora,
- modificacion_usuario,
- (
- (extract(hour from creacion_hora)::int * 60 * 60) + (extract(minute from creacion_hora)::int * 60) + (extract(second from creacion_hora)::int)
- )maximo_segundos
- from
- public.hospitalario_intra_anestesia_registro;
- --experiments
- select
- --distinct(tiempo_actual),
- tiempo_actual,
- count(grupo_intra_anestesia)cnt,
- grupo_intra_anestesia,
- codigo_intra_anestesia
- from
- tmp_registro_anestesia
- where
- codigo_establecimiento = '0003000.00010101'
- and codigo_asignacion = 'I000000067'
- and codigo_anestesia = 'AN00000028'
- and grupo_intra_anestesia <> '3'
- --and tiempo_actual = '2021-04-15 16:56:00'
- group by grupo_intra_anestesia, codigo_intra_anestesia, tiempo_actual
- --
- --I like this SQL, it's rabbit sql :-D
- select
- tiempo_actual,
- grupo_intra_anestesia,
- codigo_intra_anestesia,
- codigo_asignacion, codigo_anestesia,
- count(*)
- from
- tmp_registro_anestesia
- where
- codigo_establecimiento = '0003000.00010101'
- and codigo_asignacion = 'I000000067'
- and codigo_anestesia = 'AN00000028'
- and grupo_intra_anestesia <> '3'
- --and tiempo_actual = '2021-04-15 16:56:00'
- group by tiempo_actual, codigo_intra_anestesia, grupo_intra_anestesia, codigo_asignacion, codigo_anestesia
- HAVING count(*) > 1
- --Just for validate
- SELECT
- grupo_intra_anestesia,
- codigo_intra_anestesia,
- --creacion_fecha, creacion_hora,
- max(total_segundos)
- FROM (
- SELECT
- tiempo_actual,
- grupo_intra_anestesia,
- codigo_intra_anestesia,
- codigo_asignacion,
- codigo_anestesia,
- count(*)
- FROM
- tmp_registro_anestesia
- WHERE
- codigo_establecimiento = '0003000.00010101'
- AND codigo_asignacion = 'I000000067'
- AND codigo_anestesia = 'AN00000028'
- AND grupo_intra_anestesia <> '3'
- GROUP BY tiempo_actual,
- codigo_intra_anestesia,
- grupo_intra_anestesia,
- codigo_asignacion,
- codigo_anestesia
- HAVING
- count(*) > 1
- )d LEFT JOIN tmp_registro_anestesia USING(grupo_intra_anestesia, codigo_intra_anestesia, tiempo_actual)
- GROUP BY grupo_intra_anestesia, codigo_intra_anestesia--, creacion_fecha, creacion_hora
- --validar query por maximo cuando hay duplicados
- SELECT
- grupo_intra_anestesia,
- codigo_intra_anestesia,
- tiempo_actual,
- total_segundos
- FROM
- tmp_registro_anestesia
- WHERE
- grupo_intra_anestesia <> '3'
- AND grupo_intra_anestesia = '1'
- AND codigo_intra_anestesia = 11
- AND codigo_establecimiento = '0003000.00010101'
- and codigo_asignacion = 'I000000067'
- and codigo_anestesia = 'AN00000028'
- SELECT max(total_segundos) from tmp_registro_anestesia where grupo_intra_anestesia='1' AND codigo_intra_anestesia = 14
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement