【发布时间】:2018-04-05 23:35:53
【问题描述】:
我正在尝试理解我在此博客 (https://sqlperformance.com/2012/08/t-sql-queries/median) 上找到的以下查询。
我已在查询的每个语句下方添加了问题。 有人可以帮帮我吗?
DECLARE @c BIGINT = (SELECT COUNT(*) FROM [dbo].[Items_per_Order])
GO
SELECT AVG(1.0 * [total_de_itens]) AS MEDIAN FROM
(
SELECT [total_de_itens] FROM [dbo].[Items_per_Order]
ORDER BY [total_de_itens]
OFFSET (@c - 1) / 2 ROWS
这是为了得到正好一半之前的第一个值,对吧?
FETCH NEXT 1 + (1 - @c % 2) ROWS ONLY
有人能解释一下这个 1 + (1 - @c % 2) 等式吗?我也没有在那里使用 % 。
奇数行的方程应该是什么?
) 作为 x
这个“AS x”的目的是什么?
去
【问题讨论】: