我目前有一个如下所示的表格:
[BUSINESS_PROCESS_ID] [Error Type 1] [Error Type 2] [Error Type 3]
PVT02 108 93 PVT02 98 PVT02 80 80 80 PVT02 80 PVT02 93 PVT02 27 80 PVT03 21 PVT03 102 PVT03 80 PVT03 80 102 PVT03 80 PVT03 80 PVT03 71
基于每个Business_Process_Id,我正在寻找一个计算每个唯一错误类型的查询。 IE浏览器。查询输出应如下所示:
[BUSINESS_PROCESS_ID] [Error Type] [Count of Unique Error Types Combined]
PVT02 108 1 PVT02 98 1 PVT02 80 5 PVT02 93 2 PVT02 27 1 PVT02 98 1 PVT03 21 1 PVT03 102 2 PVT03 80 4 PVT03 71 1
正如您所看到的,我并不关心计数是否是错误类型1,2或3.我希望获得唯一错误类型的计数(即98,80,108等)按Business_Process_ID。
有人可以帮忙吗?谢谢。
答案 0 :(得分:3)
实现此目的的一种方法是使用UNION查询首先将所有错误类型放入单个列中。然后,您可以使用简单的查询将结果聚合到您希望如何看到它们。
SELECT BUSINESS_PROCESS_ID, [Error Type 1] as ErrorType
FROM TableName
UNION ALL
SELECT BUSINESS_PROCESS_ID, [Error Type 2] as ErrorType
FROM TableName
UNION ALL
SELECT BUSINESS_PROCESS_ID, [Error Type 3] as ErrorType
FROM TableName
将其另存为查询。
然后,在类似于以下内容的聚合查询中使用此查询:
SELECT BUSINESS_PROCESS_ID, ErrorType, Count(ErrorType) as Number_Of_Errors
FROM MyUnionQuery
GROUP BY BUSINESS_PROCESS_ID, ErrorType