如何在 oracle-sql 中计算周一待处理票的总数?

Posted

技术标签:

【中文标题】如何在 oracle-sql 中计算周一待处理票的总数?【英文标题】:How to count total amount of pending tickets monday in oracle-sql? 【发布时间】:2020-12-04 10:41:12 【问题描述】:

我想计算星期一的待处理票的总数。我不想要周一被转移到待处理的门票数量,而是总数量。 包含样本数据的表格:

预期结果: 周一待处理的门票总数

【问题讨论】:

您如何知道工单是否处于待处理状态?票是如何定义的?什么是“星期一”?表中没有说明所指的内容。 【参考方案1】:

如果每一行代表一张票,那么您可以使用以下方法获取特定日期待处理的号码:

select count(*)
from t
where updated_at < :date and status = 'pending';

注意:这不会计算已更改为另一个状态的“待定”状态。该数据没有足够的信息来回答这个问题。而且您的问题没有解释状态变化。

我实际上建议您提出一个问题,其中包含有关状态是什么、它们如何变化以及样本数据和期望结果的更全面的信息。

【讨论】:

【参考方案2】:

我假设未关闭的票正在等待处理。您可以使用GROUP BYHAVING,如下所示:

SELECT COUNT(1) AS PENDING FROM YOUR_TABLE T
 WHERE T.CREATED_AT <= <<YOUR_DATE>>
 GROUP BY T.TICKET_ID
HAVING SUM(CASE WHEN T.STATUS = 'closed' THEN 1 ELSE 0 END) = 0

【讨论】:

以上是关于如何在 oracle-sql 中计算周一待处理票的总数?的主要内容,如果未能解决你的问题,请参考以下文章

在Oracle-sql中比较两张表并更新一张表

聚合函数上的 iOS FetchRequest:如何包含待处理的更改?

从 oracle-sql 中的时间戳日期列中提取日期

最全的前端javaScript时间处理函数

Excel中如何计算日期所在的这年的第几周,以周一作为一周的第一天

Oracle-SQL程序优化3