|
1
9
只要做:
获得 最后的 非空值切换顺序:
|
|
|
2
5
对于那些需要在特定时间内这样做的人 大容量 ,这将成为一个问题和密集的,因为它可以转化为后端上的大量单个表点击。 我有一个使用窗口函数的解决方案,可以解决大数据/分区的问题。
对于每个GroupID值
如果我将前1个逻辑应用于缩放,并且我有很多行,那么它将返回以执行大量的单个表查询。然而,如果我使用窗口函数,我可以让它评估内存中的数据,以更有效地获取数据,尤其是在需要分区和大量数据时。 以下是解决方案:
解释-第一个_值在每个不同的GroupID内求值(因为我们按GroupID设置分区)。在该窗口中,它计算该GroupID的行中具有非空值的情况,然后按ID排序(升序或降序)。 由于它是一个窗口函数,这将值放在原始粒度的记录级别上,因此我们还添加了一个稠密的_秩来进行秩,并使我们能够在外部查询中,将每个GroupID降到一行。 p、 如果您想自己运行它,请在查询中包含以下内容,以将所需的样本数据生成到CTE中的“MY_表”中。
|
|
|
3
1
|
|
|
4
-4
|
|
John D · 需要为NULL或NOT NULL的WHERE子句 8 月前 |
|
Marc Guillot · 记录值时忽略冲突 9 月前 |
|
|
Fachry Dzaky · 正确使用ROW_NUMBER 9 月前 |
|
|
TriumphTruth · 从满足特定条件的数据集中选择1行 9 月前 |