我有一些查询,返回一个表“ code_1”(id-不重复)。
|---------------------|------------------|
| id | status |
|---------------------|------------------|
| 1 | true |
|---------------------|------------------|
| 2 | true |
|---------------------|------------------|
| 3 | false |
|---------------------|------------------|
| 3 | true |
|---------------------|------------------|
| 4 | false |
|---------------------|------------------|
根据数据..我要获取下表(“ code_2”)
|---------------------|------------------|
| id | status |
|---------------------|------------------|
| 1 | include |
|---------------------|------------------|
| 2 | include |
|---------------------|------------------|
| 3 | partial |
|---------------------|------------------|
| 4 | exclude |
|---------------------|------------------|
如果ID重复,则状态为部分,否则为status = code_1表中的状态
如果我理解正确,请使用聚合:
select id,
(case when min(status) = max(status) and min(status) then 'Include'
when min(status) = max(status) and not min(status) then 'Exclude'
else 'Partial'
end) as status
from t
group by id;
或者,使用布尔聚合函数:
select id,
(case when bool_and(status) then 'Include'
when bool_or(status) then 'Partial'
else 'Exclude'
end) as status
from t
group by id;
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句