如何解决如果条件匹配,则按记录和该特定组分组,然后设置如下最终结果
declare @table table
(
id int,status varchar(50)
)
insert into @table
values(1,'Open'),(1,(2,'Pending'),(3,'Completed'),(4,(5,'Completed')
如果条件匹配,我想按记录和特定组进行分组,然后设置如下最终结果
--expected output
--Id Status
--1 Open
--2 Pending
--3 Pending
--4 Pending
--5 Completed
对于每个组,我想检查以下条件
--Open
--Open => Open
--Open
--Open
--Pending => Pending
--Open
--Open
--Completed => Pending
--Open
--Pending
--Pending =>Pending
--Pending
--Completed
--Completed =>Completed
--Completed
解决方法
您可以使用条件逻辑:
select id,(case when max(status) = min(status) then max(status)
else 'Pending'
end) as status
from @table t
group by id;
Here 是一个 dbfiddle。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。