我有一个这样的表:
id col1 col2 col3 col4
1 Y N N N
1 N N Y N
1 N Y N N
1 N N N N
我希望它看起来像这样:
id col1 col2 col3 col4
1 Y Y Y N
我该怎么做
答案 0 :(得分:2)
您可以使用MAX()
:
select id, max(col1), max(col2), max(col3), max(col4)
from t
group by id;
答案 1 :(得分:0)
如果想要的值不自然地高(因此您可以使用MAX)或自然地不低(因此使用MIN),则可以,并且您正在寻找一个状态,可以对该状态进行编码 进入
IFF(SUM(IFF(value = <target>,1,0)>0,<target>,<non-target>)
这实际上应该通过BOOLOR_AGG完成(具有您已发布的确切示例)。
select id, boolor_agg(col1), boolor_agg(col2), boolor_agg(col3), maxboolor_agg(col4)
from t
group by id;
否则,如果您真的想要超出假设的logical or
之外进行一些更复杂的值聚合,则需要解释更多。