首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >根据时间和日期对值进行求和

根据时间和日期对值进行求和
EN

Stack Overflow用户
提问于 2018-12-26 00:06:07
回答 3查看 43关注 0票数 0

我需要帮助为日期添加不同的时间间隔读取值。

假设白天是24小时,我要一排4到8分钟的和另一排,也就是0-4pm和9:00上午12点在一排。

我正在使用以下查询:

代码语言:javascript
复制
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 

收到错误时说:

案例不是按功能分组的

EN

回答 3

Stack Overflow用户

发布于 2018-12-26 01:10:13

这应该能行。您可以根据需要调整hhGroup时间范围。我不清楚下午4点到8点是7:59 (晚上8点)还是8点59(9点)。

代码语言:javascript
复制
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 
票数 1
EN

Stack Overflow用户

发布于 2018-12-26 00:47:13

你可以把一天分成4小时,然后把每一天分别加起来:

代码语言:javascript
复制
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
票数 0
EN

Stack Overflow用户

发布于 2018-12-26 02:19:39

样本结果会有帮助,但我认为你想:

代码语言:javascript
复制
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);
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/53926423

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档