2016-03-29 23 views
1

Aşağıdakilere benzeyen bir tablom var.Satırlar ve iki grup arasında ortalama saat farkının hesaplanması

PAT_ID  ROOMED_DT    CHECKOUT_DT   ROOM_NUM 
1   11/12/2015 03:22PM  11/12/2015 06:30PM Room 4 
2   11/12/2015 07:40PM  11/12/2015 10:30PM Room 4 
3   11/12/2015 10:55PM  11/12/2015 11:30PM Room 4 
4   11/12/2015 09:45AM  11/12/2015 12:00PM Room 5 
5   11/12/2015 12:02PM  11/12/2015 01:30PM Room 5 
6   11/12/2015 02:25PM  11/12/2015 04:30PM Room 5 
7   11/13/2015 07:22AM  11/13/2015 08:04AM Room 2 
8   11/13/2015 09:40AM  11/13/2015 10:30AM Room 2 
9   11/13/2015 10:55AM  11/13/2015 11:55AM Room 2 
10   11/13/2015 12:45PM  11/13/2015 02:00PM Room 1 
11   11/13/2015 04:02PM  11/13/2015 05:30PM Room 1 
12   11/13/2015 05:25PM  11/13/2015 08:30PM Room 1 

Ben hesaplama ortalaması vakit istiyorum: Bu bir hastanın bir oda verildiğinde ROOMED_DT olma ve CHECKOUT_DT hasta bırakmak temizlenir zaman olmak üzere acil bakım merkezine bir veridir Bir önceki hastanın (CHECKOUT_DT), her bir oda için bir sonraki hastanın (ROOMED_DT) görünmesi için (CHECKOUT_DT) ne zaman temizlendiğinden, sonuçta bu gibi bir şey görünecektir (sake için ortalama sayıları hazırlıyorum) görselin), bir sonraki hastaya dakika cinsinden süre gelir.

SERVICE_DT  TIME_TO_NEXT_PAT 
11/12/2015  65.7 
11/13/2015  72.4 

Ama birden hastalar ve çoklu oda arasında CHECKOUT_DT ve ROOMED_DT arasındaki farkı dikkate almak nasıl emin değilim. Herhangi bir fikri olan var mı? Netezza kullanıyorum.

cevap

0

Bu sonuçları almak için lead analitik işlevini kullanabilirsiniz. Burada

sorgu

SELECT SERVICE_DATE 
, AVG(MINUTES_BETWEEN) 
FROM (
     SELECT PAT_ID 
     , ROOMED_DT::DATE SERVICE_DATE 
     , ROOMED_DT 
     , CHECKOUT_DT 
     , ROOM_NUM 
     , LEAD(ROOMED_DT,1) OVER (PARTITION BY ROOM_NUM ORDER BY ROOMED_DT) NEXT_CHECKED_IN 
     , MINUTES_BETWEEN(NEXT_CHECKED_IN,CHECKOUT_DT) 
     FROM SAMPLE 
     ORDER BY 1 
) FOO 
WHERE MINUTES_BETWEEN IS NOT NULL 
GROUP BY 1; 

SERVICE_DATE | AVG 
--------------+----------- 
2015-11-12 | 38.000000 
2015-11-13 | 62.000000 
(2 rows) 
olduğunu
İlgili konular