22,209
社区成员
发帖
与我相关
我的任务
分享
SELECT 操作人,
CASE WHEN v1<=v2
THEN v1
ELSE v2
END 工作量
FROM (
SELECT 操作人,
Count(DISTINCT 单号) v1,
Count(DISTINCT 文件名) v2
FROM T1
GROUP BY 操作人
) T
操作人 工作量
---------- -----------
A 2
B 3
IF object_id("T1") IS NOT NULL
DROP TABLE T1
GO
CREATE TABLE T1(单号 int,文件名 varchar(10),操作人 varchar(10))
GO
INSERT INTO T1
SELECT 1,'AA','A' UNION ALL
SELECT 2,'BB','A' UNION ALL
SELECT 3,'AA','A' UNION ALL
SELECT 4,'CC','B' UNION ALL
SELECT 1,'DD','B' UNION ALL
SELECT 2,'EE','B'
WITH TS (单号,文件名,操作人)
AS (
SELECT *
FROM T1
WHERE NOT EXISTS (SELECT *
FROM T1 TX
WHERE TX.单号 = T1.单号
AND TX.文件名 < T1.文件名)
AND NOT EXISTS (SELECT *
FROM T1 TX
WHERE TX.文件名 = T1.文件名
AND TX.单号 < T1.单号)
)
--SELECT * FROM TS
SELECT 操作人, COUNT(*)
FROM TS
GROUP BY 操作人
操作人
---------- -----------
A 2
B 1
单号 文件名 操作人
----------- ---------- ----------
1 AA A
2 BB A
4 CC B