gallopelado

CreatingSQL

Apr 16th, 2021
520
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. --Create a temporary table
  2. /*
  3. create temp table tmp_registro_anestesia(
  4.     codigo_establecimiento varchar(16) NOT NULL,
  5.     codigo_asignacion varchar(10) NOT NULL,
  6.     codigo_anestesia varchar(10) NOT NULL,
  7.     orden int4 NOT NULL,
  8.     evento_esencial int2 NULL,
  9.     tiempo_actual timestamp NULL,
  10.     grupo_intra_anestesia varchar(5) NOT NULL,
  11.     codigo_intra_anestesia int8 NOT NULL,
  12.     valor text NULL,
  13.     estado varchar(1) NULL,
  14.     creacion_fecha date NULL,
  15.     creacion_hora time NULL,
  16.     creacion_usuario varchar(10) NULL,
  17.     modificacion_fecha date NULL,
  18.     modificacion_hora time NULL,
  19.     modificacion_usuario varchar(10) NULL,
  20.     total_segundos bigint
  21. )*/
  22. select * from tmp_registro_anestesia
  23. select * from hospitalario_intra_anestesia_registro
  24.  
  25. --Insert all records to fake table with conversion
  26. insert
  27.     into
  28.     tmp_registro_anestesia
  29. select
  30.     codigo_establecimiento,
  31.     codigo_asignacion,
  32.     codigo_anestesia,
  33.     orden,
  34.     evento_esencial,
  35.     tiempo_actual,
  36.     grupo_intra_anestesia,
  37.     codigo_intra_anestesia,
  38.     valor,
  39.     estado,
  40.     creacion_fecha,
  41.     creacion_hora,
  42.     creacion_usuario,
  43.     modificacion_fecha,
  44.     modificacion_hora,
  45.     modificacion_usuario,
  46.     (
  47.         (extract(hour from creacion_hora)::int * 60 * 60) + (extract(minute from creacion_hora)::int * 60) + (extract(second from creacion_hora)::int)
  48.     )maximo_segundos
  49. from
  50.     public.hospitalario_intra_anestesia_registro;
  51.  
  52. --experiments
  53. select
  54.     --distinct(tiempo_actual),
  55.     tiempo_actual,
  56.     count(grupo_intra_anestesia)cnt,
  57.     grupo_intra_anestesia,
  58.     codigo_intra_anestesia
  59. from
  60.     tmp_registro_anestesia
  61. where
  62.     codigo_establecimiento = '0003000.00010101'
  63.     and codigo_asignacion = 'I000000067'
  64.     and codigo_anestesia = 'AN00000028'
  65.     and grupo_intra_anestesia <> '3'
  66.     --and tiempo_actual = '2021-04-15 16:56:00'
  67. group by grupo_intra_anestesia, codigo_intra_anestesia, tiempo_actual
  68.  
  69. --
  70. --I like this SQL, it's rabbit sql :-D
  71.     select
  72.         tiempo_actual,
  73.         grupo_intra_anestesia,
  74.         codigo_intra_anestesia,
  75.         codigo_asignacion, codigo_anestesia,
  76.         count(*)
  77.     from
  78.         tmp_registro_anestesia
  79.     where
  80.         codigo_establecimiento = '0003000.00010101'
  81.         and codigo_asignacion = 'I000000067'
  82.         and codigo_anestesia = 'AN00000028'
  83.         and grupo_intra_anestesia <> '3'
  84.         --and tiempo_actual = '2021-04-15 16:56:00'
  85.     group by tiempo_actual, codigo_intra_anestesia, grupo_intra_anestesia, codigo_asignacion, codigo_anestesia
  86.     HAVING count(*) > 1
  87.  
  88.  
  89. --Just for validate
  90. SELECT
  91.     grupo_intra_anestesia,
  92.     codigo_intra_anestesia,
  93.     --creacion_fecha, creacion_hora,
  94.     max(total_segundos)
  95. FROM ( 
  96.     SELECT
  97.         tiempo_actual,
  98.         grupo_intra_anestesia,
  99.         codigo_intra_anestesia,
  100.         codigo_asignacion,
  101.         codigo_anestesia,
  102.         count(*)
  103.     FROM
  104.         tmp_registro_anestesia
  105.     WHERE
  106.         codigo_establecimiento = '0003000.00010101'
  107.         AND codigo_asignacion = 'I000000067'
  108.         AND codigo_anestesia = 'AN00000028'
  109.         AND grupo_intra_anestesia <> '3'
  110.    
  111.         GROUP BY tiempo_actual,
  112.         codigo_intra_anestesia,
  113.         grupo_intra_anestesia,
  114.         codigo_asignacion,
  115.         codigo_anestesia
  116.     HAVING
  117.         count(*) > 1
  118. )d LEFT JOIN tmp_registro_anestesia USING(grupo_intra_anestesia, codigo_intra_anestesia, tiempo_actual)
  119. GROUP BY grupo_intra_anestesia, codigo_intra_anestesia--, creacion_fecha, creacion_hora
  120.  
  121. --validar query por maximo cuando hay duplicados
  122. SELECT
  123.     grupo_intra_anestesia,
  124.     codigo_intra_anestesia,
  125.     tiempo_actual,
  126.     total_segundos
  127. FROM
  128.     tmp_registro_anestesia
  129. WHERE
  130.     grupo_intra_anestesia <> '3'
  131.     AND grupo_intra_anestesia = '1'
  132.     AND codigo_intra_anestesia = 11
  133.     AND codigo_establecimiento = '0003000.00010101'
  134.     and codigo_asignacion = 'I000000067'
  135.     and codigo_anestesia = 'AN00000028'
  136.    
  137. SELECT max(total_segundos) from tmp_registro_anestesia where grupo_intra_anestesia='1' AND codigo_intra_anestesia = 14
RAW Paste Data

Adblocker detected! Please consider disabling it...

We've detected AdBlock Plus or some other adblocking software preventing Pastebin.com from fully loading.

We don't have any obnoxious sound, or popup ads, we actively block these annoying types of ads!

Please add Pastebin.com to your ad blocker whitelist or disable your adblocking software.

×