2017-05-31 95 views
0

我需要您对SQL代码的实际帮助,以实现下述功能。如何根据当前字段的条件创建列并填写数据

我有一个名为“Base”的表格,有3列。我需要添加一个新列。在名为“新结果”的新列中,它将检查每个ID号第一。如果表中出现两次相同的ID(由条件A和B测量,如ID 100和101所示),则在“新结果”字段中填写由条件B测量的值。如果一个ID仅出现一次(仅由条件A或B测量,如ID 103和104所示),然后将原始值复制到新列中。

enter image description here

回答

0

可以使用FIRST_VALUE窗口功能。

select t.*, 
first_value(result) over(partition by id order by conditions desc) as new_result 
from tbl t 
+0

感谢您的解决方案。有效。使用Redshift时,它需要我在“按条​​件顺序排列” “无界之前和无界之后的行之间添加以下语句” – orzking

相关问题