首页 > 解决方案 > 如何只选择表中符合条件的行,避免 SQL 中的重复

问题描述

所以我有一个如下的df:

USER Value object 
0001     V      V
0002     A   NULL
0002     C      C
0003     A   NULL
0004     A   NULL
0004     A   NULL
0003     V      V

所以我基本上想USER成为这个DF每一行的唯一ID。如果列中有一个AValue我只想要它,如果这是 ID 的唯一选项。所以有两个002,我只想看看没有的实例A,所以C

因为0004没有非A Value,我就拿了A

最后结果:

USER Value
0001     V
0002     C
0003     V
0004     A

标签: sqlfiltersnowflake-cloud-data-platform

解决方案


这将返回每个元组的一个值,最后返回 A(如果 A 是潜在值中的最小值):

select USER, max(Value) as value from Table
group by User

或者,如果他们有多个具有不同对象的元组,这可能会返回多个用户(当不为空时)

select distinct user, coalesce(object, value) 
from table ;

推荐阅读