Sql 获取查询结果集返回的行数,但不包含ROWCOUNT
我有我下面的查询,这将给我的雇员ID和次数,他已经登录到一个应用程序Sql 获取查询结果集返回的行数,但不包含ROWCOUNT,sql,sql-server,tsql,join,count,Sql,Sql Server,Tsql,Join,Count,我有我下面的查询,这将给我的雇员ID和次数,他已经登录到一个应用程序 SELECT E.[EmployeeId], COUNT(*) LoginCount FROM tblEmployee E JOIN tblAccessLog AL ON E.EmployeeId = AL.EmployeeId WHERE AL.[AccessType] = 212 GROUP BY E.[EmployeeId] 我想让那些登录超过特定阈值的员工,让我拿100 SELECT E.[EmployeeId],
SELECT E.[EmployeeId], COUNT(*) LoginCount
FROM tblEmployee E
JOIN tblAccessLog AL ON E.EmployeeId = AL.EmployeeId
WHERE AL.[AccessType] = 212
GROUP BY E.[EmployeeId]
我想让那些登录超过特定阈值的员工,让我拿100
SELECT E.[EmployeeId], COUNT(*) LoginCount
FROM tblEmployee E
JOIN tblAccessLog AL ON E.EmployeeId = AL.EmployeeId
WHERE AL.[AccessType] = 212
GROUP BY E.[EmployeeId]
HAVING COUNT(*) > 100
现在我想得到上面查询返回的计数,我指的是访问我的站点超过100次的员工计数
我尝试了
@@ROWCOUNT
,它返回了用户数,但返回了2个结果集,我正在寻找是否有更好的方法代替使用@@ROWCOUNT
只需将当前查询用作子查询即可
SELECT COUNT(*)
FROM (
SELECT E.[EmployeeId], COUNT(*) LoginCount
FROM tblEmployee E
JOIN tblAccessLog AL ON E.EmployeeId = AL.EmployeeId
WHERE AL.[AccessType] = 212
GROUP BY E.[EmployeeId]
HAVING COUNT(*) > 100
) X
使用带窗口的
计数
:
Select E.[EmployeeId], COUNT(*) LoginCount, COUNT(*) OVER() AS cnt_of_Employee
FROM tblEmployee E
JOIN tblAccessLog AL ON E.EmployeeId = AL.EmployeeId
WHERE AL.[AccessType] = 212
GROUP BY E.[EmployeeId]
HAVING COUNT(*) > 100