[英]Pick value from row when there is overlapping value in another column postgreSQL
抱歉,我是 SQL 新手,所以这可能是一个非常愚蠢的问题,我目前有一个表,例如:
X | 是 |
---|---|
一种 | 12345 |
乙 | 12345 |
一种 | 12346 |
一种 | 12347 |
一种 | 12348 |
当y值相同时,sql中是否有一些简化功能总是选择b作为值? 这样它看起来像:
X | 是 |
---|---|
乙 | 12345 |
一种 | 12346 |
一种 | 12347 |
一种 | 12348 |
您可以使用distinct on
:
select distinct on (y) t.*
from t
order by y, (x = 'b') desc;
这会为每个value
选择一行,优先选择'b'
不是其他值。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.