以下表格中有两列 ID 和结果,
ID Result 8000010 YES 8000010 NO 8000011 YES 8000012 NO 8000023 NO 8000025 YES 8000025 YES 8000026 NO 8000026 NO
我需要聚合这样一种方式,即如果 ID 的特定组合的结果是否那么整个结果是否其他是。例如,
8000010 YES 8000010 NO
输出
8000010否
8000025 YES 8000025 YES
输出
8000025是
答案 0 :(得分:2)
您可以通过聚合来完成此操作。
Select Id, MIN(Result)
from your_table
group by Id
答案 1 :(得分:1)
您也可以使用CTE执行此操作,它可以作为通用解决方案,因为它可以在结果中处理3个或更多值,如果我们假设您还有MAYBE
作为值
;with new_table as (
select id, result, case when result = 'YES' then 3 when result = 'MAYBE' then 2 else 1 end as rank
from your_table)
select id, case when min(rank) = 1 then 'NO' when min(rank) = 2 then 'MAYBE' ELSE 'YES' end as Result from new_table
group by id