SQL 中游标、循环及层次结构处理技巧
1. 游标计算中位数
中位数是一组数字中,一半数值大于该数,一半数值小于该数的值。SQL 中没有直接的中位数函数,但可以使用滚动游标来计算。
1.1 滚动游标计算中位数的原理
滚动游标允许使用 FETCH FIRST 、 FETCH LAST 、 FETCH RELATIVE 、 FETCH PRIOR 和 FETCH ABSOLUTE 来定位特定行。通过获取最后一行,可以确定结果集的总行数 @@CURSOR_ROWS 。
- 若 @@CURSOR_ROWS 为奇数,将其加 1 后除以 2,再使用 FETCH ABSOLUTE 获取中位数。
- 若 @@CURSOR_ROWS 为偶数,需要获取第 @@CURSOR_ROWS / 2 行和下一行的值,计算平均值作为中位数。
1.2 示例代码
DECLARE
@Quantity int,
@Quantity2 int,
@Median float,
@Row int
DECLARE c SCROLL CURSOR FOR
SELECT
SUM (Quantity)
FROM
[Order Details]
GROUP BY
Or
超级会员免费看
订阅专栏 解锁全文
1275

被折叠的 条评论
为什么被折叠?



