【问题标题】:Count Over Date Range Instead of Count of One Specific Day计算日期范围而不是计算某一特定日期
【发布时间】:2019-01-11 21:47:40
【问题描述】:

我正在尝试检索在一个财政月而不是一天内生成的警报计数。我当前的代码让我收到一天的总计数,但我希望它检索一个会计月的总计数。

我已经尝试了所有方法,我需要做什么来更改下面的代码?

SELECT COUNT(DISTINCT
    CASE
        WHEN substr(from_utc_timestamp(act.created, 'America/New_York'), 0, 10) = '[End date]'
            THEN act.activity_uid
        ELSE NULL
    END) AS Total_Generated_on_SLA_Date
FROM contactcentre.s_evt_act AS act
WHERE 
    (
        substr(from_utc_timestamp(act.created, 'America/New_York'), 0, 10) = '[End date]'
        OR substr(from_utc_timestamp(act.todo_actl_end_dt, 'America/New_York'), 0, 10) = '[End date]'
    )
    AND x_low_assgn_queue = 'Cust Care Exceptions'
    AND NOT todo_cd = 'Call';

【问题讨论】:

  • 您在使用 Db2 吗?
  • 我正在使用 MS Access

标签: sql date count


【解决方案1】:

一种快速而肮脏的解决方案,对现有查询的更改最少。

您已经有一个聚合查询将时间戳act.created 截断到当天。只需扩展逻辑并再截断 3 个字符即可获得月份。因此:

SELECT COUNT(DISTINCT
    CASE
        WHEN substr(from_utc_timestamp(act.created, 'America/New_York'), 0, 7) = '[End month]'
            THEN act.activity_uid
        ELSE NULL
    END) AS Total_Generated_on_SLA_Date
FROM contactcentre.s_evt_act AS act
WHERE 
    (
        substr(from_utc_timestamp(act.created, 'America/New_York'), 0, 7) = '[End date]'
        OR substr(from_utc_timestamp(act.todo_actl_end_dt, 'America/New_York'), 0, 7) = '[End month]'
    )
    AND x_low_assgn_queue = 'Cust Care Exceptions'
    AND NOT todo_cd = 'Call';

[End month] 应该被赋予类似2019-01 的值。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-04-18
    • 2010-09-19
    相关资源
    最近更新 更多