【发布时间】:2015-06-16 13:08:33
【问题描述】:
我有一个查询要输出前 30 个结果
select top 30 * from [dbo].[Stats]
where Rack_Code = 'ABC'
order by Date_of_Record desc
并查询以获取所有时间的平均值
SELECT AVG(Total_MB - (East_MB + West_MB)) AS Other,
AVG(East_MB) AS East,
AVG(West_MB) AS West
FROM [dbo].[Stats]
WHERE Rack_Code = 'ABC'
给出正确的输出
但是当我尝试获取前 30 个条目的平均值时,SQL 查询似乎忽略了 Top 30
SELECT TOP 30 AVG(Total_MB - (East_MB + West_MB)) AS Other,
AVG(East_MB) AS East,
AVG(West_MB) AS West
FROM [dbo].[Stats]
WHERE Rack_Code = 'ABC'
并给出不正确的输出
请指教
【问题讨论】:
-
没有
GROUP BY,你会得到一行作为输出 -
@ughai 是的,我希望有单行作为输出
-
您在最终查询中没有 order by,所以 top 有点随机。
-
您是否正在寻找基于
Date_of_Record的前 30 行的平均值? -
@ughai 正确,我正在寻找基于
Date_of_Record的前 30 行的平均值
标签: sql-server average