【问题标题】:Counting data with week interval and parameter date in oracle在oracle中以周间隔和参数日期计数数据
【发布时间】:2018-12-12 01:21:18
【问题描述】:

我正在尝试计算从参数开始日期到结束日期的间隔周的数据。到目前为止,我得到了这个代码:

SELECT  TRUNC(HAZARD_DATE, 'WW') week, count(*) as TOTAL 
FROM T_HAZARD a
WHERE A.HAZARD_DATE BETWEEN :parStart AND :parEnd
GROUP BY TRUNC(HAZARD_DATE, 'WW')
ORDER BY WEEK ASC

结果:

    WEEK    TOTAL
1/1/2018    181
1/8/2018    289
1/15/2018   344
1/22/2018   288

我想要的结果:

WEEK    TOTAL
 1      181
 2      289
 3      344
 4      288

感谢您的帮助..

【问题讨论】:

    标签: sql oracle reporting-services


    【解决方案1】:

    你很亲密。您只需将TRUNC 函数替换为TO_CHAR(格式相同的WW)。这将返回周数,而TRUNC(..., 'WW') 返回一周第一天的日期。

    SELECT TO_CHAR(HAZARD_DATE, 'WW') week, count(*) as TOTAL 
    FROM T_HAZARD a
    WHERE A.HAZARD_DATE BETWEEN :parStart AND :parEnd
    GROUP BY TO_CHAR(HAZARD_DATE, 'WW')
    ORDER BY WEEK ASC
    

    【讨论】:

    • 欢迎@fadiladam!
    • 如果 hazard_date 跨越数月和数年(2/5/2018、2/12/2018 等),答案是否符合预期?
    • 注意,WW 的意思是:“一年中的第 1 周 (1-53),第 1 周从一年的第一天开始,一直持续到一年的第七天。”因此,一周可以从周一到周日的任何一天开始。这是你喜欢得到的吗?
    猜你喜欢
    • 2021-10-29
    • 2012-03-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多