我创建了一个基于num
列的排名列,并按名称分组。我正在尝试实现逻辑select the colour value in the first row if num is not 0, otherwise use the colour value from the second row or 3rd row, where the num is not 0
例如,对于名称A,应选择黄色。对于名称B,应选择绿色。有没有人可以帮助建议如何做到这一点?谢谢你。
Name. colour num. rank
A. blue 0 1
A yellow. 300 2
B green 100. 1
B brown 500. 2
1条答案
按热度按时间lxkprmvk1#
你可以先使用
filter
来排除0
,然后使用Window partition
来分配row_number
,然后再使用filter
来过滤掉不是1
的值。Example
Output
这仅在
name
和num
的组合是唯一的假设下起作用,如果不是这种情况,则需要进一步调整。此外,如果您显示导致您提到的表的代码,这个问题可以以更有效的方式解决(可能)。祝你好运!