WITH rows AS
(
SELECT
*, ROW_NUMBER() OVER (ORDER BY dtDeliveryDate) AS rn
FROM
TCheckRecipient
)
SELECT
AVG(avarage)
FROM
(SELECT
TCheck.iCheckId,
AVG(DATEDIFF(minute, mc.dtDeliveryDate, mp.dtDeliveryDate)) AS average
FROM
rows mc
LEFT JOIN
TCheck ON TCheck.iCheckId = mc.iCheckId
JOIN
rows mp ON mc.rn = mp.rn - 1
GROUP BY
TCheck.iCheckId)
答案 0 :(得分:0)
AVG(avarage)
中有错字错误,应该是 平均值 。
另外,请记住在子查询中指定别名。
WITH rows AS
(
SELECT
*, ROW_NUMBER() OVER (ORDER BY dtDeliveryDate) AS rn
FROM
TCheckRecipient
)
SELECT
AVG(avarage)
FROM
(SELECT
TCheck.iCheckId,
AVG(DATEDIFF(minute, mc.dtDeliveryDate, mp.dtDeliveryDate)) AS average
FROM
rows mc
LEFT JOIN
TCheck ON TCheck.iCheckId = mc.iCheckId
JOIN
rows mp ON mc.rn = mp.rn - 1
GROUP BY
TCheck.iCheckId) as A