我有一张表,叫他们 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语句,该语句可以给我每个月输入的最后一笔付款(如果有的话)。我目前的说法没有给我结果。还存在一个问题,有时在该月的最大日期有时会有平局,因此我也必须能够处理该问题(我的想法是在平局的情况下选择最大的