当前位置: 首页 > 面试题库 >

每月对有条件的记录进行计数

施令雪
2023-03-14
问题内容

我有一张表,叫他们 SUMMARYDATA

NIP  NAME   DEPARTMENT       STATUSIN           STATUSOUT               LATECOME
------------------------------------------------------------------------------------------------
A1   ARIA   BB         2020-01-21 08:06:23  2020-01-21 11:58:36         00:06:23             
A1   ARIA   BB         2020-01-22 07:34:27  2020-01-22 17:19:47         00:00:00               
A1   ARIA   BB         2020-01-23 08:30:00  2020-01-23 11:00:00         00:30:00
A1   ARIA   BB         2020-01-24 08:05:00  2020-01-24 10:30:00         00:05:00
A2   BELLE  BB         2020-01-21 07:06:20  2020-01-21 13:58:31         00:00:00             
A2   BELLE  BB         2020-01-22 07:34:27  2020-01-22 17:19:47         00:00:00               
A2   BELLE  BB         2020-01-23 07:06:00  2020-01-23 10:30:00         00:00:00
A2   BELLE  BB         2020-01-24 09:06:00  2020-01-23 10:30:00         02:06:00
A3   CHLOE  CC         2020-01-21 07:06:23  2020-01-21 11:55:30         00:00:00             
A3   CHLOE  CC         2020-01-22 07:34:27  2020-01-22 17:00:44         00:00:00               
A3   CHLOE  CC         2020-01-23 08:37:00  2020-01-23 11:13:00         00:37:00
A3   CHLOE  CC         2020-01-24 08:09:00  2020-01-24 10:22:00         00:09:00
A4   ZIYA   CC         2020-01-21 07:06:20  2020-01-21 13:58:31         00:00:00             
A4   ZIYA   CC         2020-01-22 07:34:27  2020-01-22 17:19:47         00:00:00               
A4   ZIYA   CC         2020-01-23 06:06:00  2020-01-23 11:30:00         00:00:00
A4   ZIYA   CC         2020-01-24 09:06:00  2020-01-23 15:30:00         02:06:00
A5   BRIAN   BB         2020-01-21 08:06:23  2020-01-21 11:58:36         00:06:23             
A5   BRIAN   BB         2020-01-22 07:34:27  2020-01-22 17:19:47         00:00:00               
A5   BRIAN   BB         2020-01-23 08:30:00  2020-01-23 11:00:00         00:30:00
A5   BRIAN   BB         2020-01-24 08:05:00  2020-01-24 10:30:00         00:05:00

我需要SELECT(DEPARTMENT,MONTH,YEARS,COUNT(LATECOME))和每月COUNT的记录Count (where LATECOME > '00:00:01') > 2

因为Aria和BrianLATECOME > 2每月收入只有Belle&Ziya1个LATECOME,而ChloeLATECOME每月收入只有2个。因此,在部门BB中,只有1即Aria,而部门CC为0,因为Chloe&Ziya<= 2 LATECOME

这是我的意思是示例输出:

DEPARTMENT     MONTH    YEAR       LATECOME
-------------------------------------------
  BB            01      2020           2              
  CC            01      2020           0

问题答案:

请尝试以下操作:

;WITH cte AS 
(
    SELECT DISTINCT [NAME], DEPARTMENT, MONTH(STATUSIN) [MONTH], YEAR(STATUSIN) [YEAR], 
        SUM(CASE WHEN LATECOME = '00:00:00' THEN 0 ELSE 1 END) OVER(PARTITION BY [NAME], DEPARTMENT, MONTH(STATUSIN), YEAR(STATUSIN) ORDER BY [NAME]) Total
    FROM SUMMARYDATA
)

SELECT DEPARTMENT, [MONTH], [YEAR], SUM(CASE WHEN TOTAL > 2 THEN 1 ELSE 0 END) LATECOME
FROM cte
GROUP BY DEPARTMENT, [MONTH], [YEAR]

请在
此处
找到db <> fiddle 。



 类似资料:
  • 问题内容: 我有一张表,我们称它们为桌子 我需要每月的记录并更新为table ,这是我的意思是一个示例输出: 在数据类型列IS 到目前为止,这是我尝试过的: 该查询仅在每个员工和每个月显示一次。 问题答案: 尝试以下

  • 问题内容: 我有一个具有“约会表”和“服务表”的数据库。每个appt都有一个服务,每个服务都有一个价格。我想要的是一个查询,该查询将始终返回12行(每月一行),并包含几个月的总和(基于其服务ID)。到目前为止,我有: 当前,返回的内容如下: 问题是,如果一个月没有任何订单,我不会在查询中返回该月。我希望该月有一个记录,只是它的“ monthly_total”等于零。 以下是我希望查询返回的内容:

  • 问题内容: 我正在尝试计算表中的记录,并按日期将它们分组。我当前的查询如下所示: 这行得通,除了我还要数月不存在任何记录的计数。 谁能提供有关如何实现此目标的建议/建议? 问题答案: 在MySQL中执行此操作的最简单方法是创建一个名为的表,该表列出了您感兴趣的所有月份,并在表中使用LEFT JOIN。 但是,由于这主要是一个表示问题,因此通常很容易在您已经在运行的情况下运行查询并在客户端(例如PH

  • 问题内容: 我有这个查询: 是否可以根据首先匹配的条件对从该查询返回的记录进行排序。我想先获取所有匹配的记录,然后再获取其他匹配的记录。 例如,如果我有以下记录: 我希望对它们进行如下排序: 有可能吗? 问题答案:

  • 问题内容: 我正在使用的Web应用程序偶尔会为某些用户带来数据完整性问题。我想打开跟踪级别的日志记录,但是由于我们每秒要处理100个请求,因此每个日志记录都是不可能的。 log4j是否可以有条件地记录日志?换句话说,我希望仅在特定用户发出请求时才能获得跟踪日志。由于我事先不知道哪些用户会受到影响,因此我无法简单地临时对用户名进行硬编码。 编辑: 我想我需要更清楚一点。我可以轻松地在日志语句中添加条

  • 问题内容: 不幸的是,SQL并不是很容易找到我。我有两个表,一个表和一个表。 贷款支付表: ID(主键),LoanID(与贷款表上的ID匹配),PaymentDate,Amount等。 我需要一条sql语句,该语句可以给我每个月输入的最后一笔付款(如果有的话)。我目前的说法没有给我结果。还存在一个问题,有时在该月的最大日期有时会有平局,因此我也必须能够处理该问题(我的想法是在平局的情况下选择最大的