我经常在Teradata SQL助手中使用它:
row_number() over(partition by X||Y order by Z desc) = 1
我的同事使用相同的BUT,区别在于他没有进入" ||"在两个属性之间,他只需输入一个","。我用两者测试了一些小数据,但在输出中找不到任何差异。
我的假设是使用" ||"是两个属性(X和Y)的串联。这是真的吗?
现在有人在" ||"之间有什么区别?和","在这个命令?
非常感谢...
答案 0 :(得分:4)
两者非常相似。但是,带有逗号的版本正确(大多数情况下)。考虑在这些情况下会发生什么:
X Y
A BC
AB C
连接版本会将它们组合成" ABC",但您可能不想这样做。逗号版本将值视为(' A',' BC')和(' AB' C'),因此它们是分开 - 就像你做group by X, Y
。
如果真的是你的意图,那么只将值连接在一起。