平均,分区和SQL Server 2012

时间:2014-04-26 21:36:35

标签: sql-server where partition

这是我的例子

SQLfiddle.com

有人可以解释为什么AvgQuant是无效的列名吗?

此外,SQLfiddle是一款出色的工具,但如何设置舍入设置呢?例如,以下示例中的舍入不正确(只需删除where子句)

SELECT [Location]
  ,Avg([Quantity]) over (partition BY LOCATION) AS AvgQuant
  ,[Street]
FROM tblExample;

此致

1 个答案:

答案 0 :(得分:2)

这是因为WHERE子句在投影之前执行,因此别名在此阶段不可用。您必须使用子查询来实现您想要的目标。

SELECT *
FROM
(
  SELECT [Location]
      ,Avg([Quantity]) over (partition BY LOCATION) AS AvgQuant
      ,[Street]
  FROM tblExample
) A
WHERE AvgQuant between 3.5 and 5.5;