如何从SQL Server的“日期”列中连续3个月或更长时间进行计数?

问题描述 投票:0回答:1
<<

我正在尝试让我的查询计算用户行数,但连续3个月以上的数据(也就是通过的行)。我想知道如何从日期列中确定员工是否连续通过了表中的数据/行数为3个月或以上?

我曾尝试使用COUNT函数并尝试使用临时表,但想看看是否有更好的方法来按部门连续3个月或更长时间通过用户的方式对每个用户进行计数?

“输出数据”

DECLARE @TotalUserCount AS INT SELECT @TotalUserCount = COUNT(DISTINCT [User_ID]) FROM [dbo].[Employee_Monthly_Raw] SELECT DISTINCT a.Department AS 'Dep', @TotalUserCount AS 'Total_User_Count' FROM (SELECT DISTINCT RTRIM(LTRIM([Department])) AS 'Dep', [User_ID] AS 'User_ID', COUNT(ALL @TotalUserCount) AS 'Total_User_Count', COUNT(DISTINCT [Date]) AS 'Baseline', FROM [dbo].[Employee_Monthly_Raw] WHERE [User_ID] IS NOT NULL GROUP BY [Dep],[User_ID] HAVING COUNT(DISTINCT [Date]) >= '6') AS a GROUP BY [Department] ORDER BY [Department]

[预期结果应通过一个EE(按其部门分组)计数,在该EE中,它们会通过以月初格式(即'01 / 01/2019)输入的“日期”列中传递3个月或更长时间的数据')

我正在尝试让我的查询计算用户行数,但连续3个月以上的数据(也就是通过的行)。我想知道如何从日期列确定是否为Employee ...

sql sql-server tsql count correlated-subquery
1个回答
0
投票
如果我对您的理解正确,您希望获得过去3个月内工作(或显示在您提供的样本表中)的员工人数

0
投票
如果对于每一行,您想知道是否有三个月的值相同,那么可以使用lag()
© www.soinside.com 2019 - 2024. All rights reserved.