【发布时间】:2022-01-09 13:16:12
【问题描述】:
我有表格中的数据:
Name Category my_value
Ana A 42
Ana B 33
Bob A 33
Bob B 33
Carla A 42
Carla B 33
我希望相同的姓名发生以下情况:
- 当 A 和 B 共享相同的值时,A 没有与之关联的值(在 col my_alue 中)。
- 当 A 和 B 不同时,A 保留其值,而 B 没有与之关联的值(在 col my_value 中)。
我尝试过:
select *,
case when Category = 'A' and Category = 'B'
then my_value = null
else my_value
end as "Value A (corrected)"
from my_table
显然错误...如果值不同,我不确定如何实现将 B 设置为 null 的条件。以及如何通过这里实现一个组来比较同名的类别...
理想情况下,这是我在 之后的输出(在同一列中更改,因为其中每个名称都有更多类别,即 C、D、E... - 只需要更改 A 和 B )
Name Category Value
Ana A 42
Ana B
Bob A
Bob B 33
Carla A 42
Carla B
【问题讨论】:
标签: sql postgresql null case