我需要帮助为日期添加不同的时间间隔读取值。
假设白天是24小时,我要一排4到8分钟的和另一排,也就是0-4pm和9:00上午12点在一排。
我正在使用以下查询:
SELECT
ennt_date,
CASE
WHEN to_number(TO_CHAR(dta.end_time,'HH24:MI:SS'),'sssss')/60 >= 960
AND to_number(TO_CHAR(dta.end_time,'HH24:MI:SS'),'sssss') /60 <=
1200
THEN (reads)
ELSE (reads)
END
from MD_data
group by ennt_date 收到错误时说:
案例不是按功能分组的
发布于 2018-12-26 01:10:13
这应该能行。您可以根据需要调整hhGroup时间范围。我不清楚下午4点到8点是7:59 (晚上8点)还是8点59(9点)。
SELECT ennt_date
,hhGroup
,Count(1) as cnt
FROM
(Select
ennt_date
,CAST( dta.end_time as time) as tm
,DATEPART(HH, dta.end_time ) as hh
,CASE When DATEPART(HH, dta.end_time ) < 16 Then '0am-4pm'
When DATEPART(HH, dta.end_time ) < 20 Then '4pm-8pm'
When DATEPART(HH, dta.end_time ) < 21 Then '8pm-9pm'
When DATEPART(HH, dta.end_time ) < 24 Then '9pm-mid'
END as hhGroup
From md_data
) as mm
GROUP BY ennt_date, hhGroup 发布于 2018-12-26 00:47:13
你可以把一天分成4小时,然后把每一天分别加起来:
with
x as (
select
(extract(hour from end_time) div 4) * 4 as fragment,
reads
from md_data
)
select
fragment,
sum(reads)
from x
group fragment发布于 2018-12-26 02:19:39
样本结果会有帮助,但我认为你想:
SELECT trunc(ennt_date),
( ceil( extract(hour from ennt_date) / 4.0) * 4 - 4 ) as hour,
SUM(reads)
from MD_data
group by trunc(ennt_date),
ceil( extract(hour from ennt_date) / 4.0);https://stackoverflow.com/questions/53926423
复制相似问题