我有三个连接的表。 TableA具有Column1(ID)的唯一值,该值在具有非唯一值的Column1的TableC上联接。我目前正在基于TableC中Column2的最大值加入这些对象。在TableB中返回一个值,该值只是从TableC中联接出来的。
但是我想对此进行调整,以便如果TableB.Column2在TableC.Column2中具有大于0的任何值,则将其选择为最大值,如果为0,则通常根据数值选择该最大值。
我当前的查询是这样:
Select [TableA].Column2,
FIRST_VALUE([TableB].Column2) OVER (PARTITION BY [TableA].Column2 ORDER BY MAX([TableC].Column2) Desc)
From [TableC] Left Join
[TableA]
On [TableA].Column1 = [TableC].Column1 Left Join
[TableB]
On [TableB].Column3 = [Table3].Column3
我希望发生的情况是:
TableC.Column2>'0',其中TableB.Column2 ='KEYVALUE'然后基于TableC.Column3显示Table.Column2,但是如果TableC.Column2 ='0',其中TableB.Column2 ='KEYVALUE'然后显示结果[TableB] .Column2基于MAX [TableC] .Column2
样本数据:
示例输出:
S7000,KEYVALUE
S6500,OTHERVALUE1
希望这一切都有道理,谢谢。
答案 0 :(得分:1)
我发现您的条件很难遵循,但是您似乎想要x_labels
:
apply