我有一个表调用CMH_VITALSIGN,此表中有一列为Time,它存储日期和时间(2016年3月2日上午11:33:17)。现在我想每小时从这张表中获取数据。我的表列是..
(
VITAL_SIGNNO NUMBER,
CONSULT_NO VARCHAR2(16 BYTE),
REG_NO VARCHAR2(16 BYTE),
ADMISSION_NO VARCHAR2(16 BYTE),
DN_NO VARCHAR2(16 BYTE),
CONSULT_DT DATE,
TEMP_C NUMBER(4,2),
TEMP_F NUMBER(5,2),
PULSE NUMBER(3),
RR NUMBER(2),
BP_HIGHER NUMBER(5,2),
BP_LOWER NUMBER(5,2),
RESP NUMBER(3),
SPECIALITY_NO VARCHAR2(16 BYTE),
ENTERED_BY VARCHAR2(16 BYTE),
ENTRY_TIMESTAMP DATE,
UPDATED_BY VARCHAR2(16 BYTE),
UPDATE_TIMESTAMP DATE,
COMPANY_NO VARCHAR2(10 BYTE) DEFAULT 1,
SL_NO VARCHAR2(16 BYTE)
)
现在我想将数据显示为折线图每小时基数......
SELECT to_date(ENTRY_TIMESTAMP) DAY,
DECODE(TO_CHAR(ENTRY_TIMESTAMP,'HH24'),'11',pulse, 0) "00",
DECODE(TO_CHAR(ENTRY_TIMESTAMP,'HH24'),'12',pulse,0)"01",
DECODE(TO_CHAR(ENTRY_TIMESTAMP,'HH24'),'13',pulse,0) "02",
DECODE(TO_CHAR(ENTRY_TIMESTAMP,'HH24'),'14',pulse,0) "03"
FROM CMH_VITALSIGN
WHERE pulse IS NOT NULL
--where to_date(ENTRY_TIMESTAMP) ='01_MAY-2010'
--GROUP by to_char(ENTRY_TIMESTAMP,'YYYY-MON-DD'), to_date(ENTRY_TIMESTAMP)
ORDER BY to_date(ENTRY_TIMESTAMP);
任何人都可以帮我解决这个问题。
答案 0 :(得分:0)
SELECT TO_CHAR ( ENTRY_TIMESTAMP, 'HH24') AS hour_num,
PULSE,
TEMP_C,
TEMP_F,
RR,
BP_HIGHER,
BP_LOWER,
RESP
FROM cmh_vitalsign
WHERE TRUNC (ENTRY_TIMESTAMP) = TO_DATE ( '3/2/2016', 'MM/DD/YYYY')
and ADMISSION_NO = 'A011009011297';
答案 1 :(得分:-1)
如果您想每小时计算一次数据,请尝试执行以下操作:
SELECT TO_CHAR( d, 'yyyy-mm-dd hh24') hour, COUNT(*)
FROM (SELECT SYSDATE + LEVEL / 26 / 60 d
FROM DUAL
CONNECT BY LEVEL < 1000)
GROUP BY TO_CHAR( d, 'yyyy-mm-dd hh24')