我在SQL Server 2016中工作。我有以下表格和示例数据:
CREATE TABLE A
(
col1 char(1)
,col2 int
,indicator_flag char(4)
)
;
INSERT INTO A
VALUES
('A', 1, 'Pass')
,('A', 2, 'Pass')
,('A', 3, 'Fail')
,('B', 10, 'Pass')
,('C', 19, 'Fail')
,('D', 1, 'Fail')
,('D', 2, 'Fail')
,('E', 1, 'Pass')
,('E', 2, 'Pass')
,('F', 20, 'Fail')
,('F', 21, 'Fail')
,('F', 100, 'Pass')
;
indicator_flag
列只能保存'Pass‘和'Fail’值。对于col1
中的每个不同的值,我希望根据以下规则返回一个折叠的indicator_flag
值--如果所有值都是“Pass”,则返回“Pass”;否则返回“Fail”。
因此,对于示例数据,我希望得到以下输出:
col1 collapsed_indicator_flag
A Fail
B Pass
C Fail
D Fail
E Pass
F Fail
如何实现此输出?解决方案需要有良好的性能。(我的实际表格非常大。)
https://stackoverflow.com/questions/44598031
复制相似问题