我想按一段时间(月,周,日,小时......)选择计数和组。因此,例如,我想选择行数并将它们分组24小时。
我的表创建如下。日期是时间戳。
CREATE TABLE MSG
(
MSG_ID decimal(22) PRIMARY KEY NOT NULL,
MSG_DATE timestamp,
FILE_REF varchar2(32),
FILE_NAME varchar2(64),
MSG_TYPE varchar2(2),
);
CREATE UNIQUE INDEX PK_FEI_MSG ON MSG(MSG_ID);
我尝试了这个查询。长度取决于时间段。但是我怎么能从现在开始分组。
SELECT substr(MSG_DATE, 1,length),COUNT(*) as total FROM MSG GROUP BY substr(MSG_DATE, 1, length)
但是,如何将日期分组从现在起+ time_period?
答案 0 :(得分:22)
您可以按TO_CHAR功能进行分组。
select to_char(msg_date, 'X')
,count(*)
from msg
group
by to_char(msg_date, 'X')
...其中X是格式规范:
你可以将它们组合起来,但是你喜欢