1
9
只要做:
获得 最后的 非空值切换顺序:
|
2
5
对于那些需要在特定时间内这样做的人 大容量 ,这将成为一个问题和密集的,因为它可以转化为后端上的大量单个表点击。 我有一个使用窗口函数的解决方案,可以解决大数据/分区的问题。
对于每个GroupID值
如果我将前1个逻辑应用于缩放,并且我有很多行,那么它将返回以执行大量的单个表查询。然而,如果我使用窗口函数,我可以让它评估内存中的数据,以更有效地获取数据,尤其是在需要分区和大量数据时。 以下是解决方案:
解释-第一个_值在每个不同的GroupID内求值(因为我们按GroupID设置分区)。在该窗口中,它计算该GroupID的行中具有非空值的情况,然后按ID排序(升序或降序)。 由于它是一个窗口函数,这将值放在原始粒度的记录级别上,因此我们还添加了一个稠密的_秩来进行秩,并使我们能够在外部查询中,将每个GroupID降到一行。 p、 如果您想自己运行它,请在查询中包含以下内容,以将所需的样本数据生成到CTE中的“MY_表”中。
|
3
1
|
4
-4
|
Willy · SQL Server存储过程返回意外值 7 年前 |
SE1986 · sp\u执行SQL为原始查询提供不同的结果 7 年前 |
MS204 · 从存储在表中的查询中获取结果到其自己的结果集中? 7 年前 |
sai bharath · 按数值显示字母数字列顺序 7 年前 |