我正在尝试计算一个城镇中使用相同作物品种的平均害虫数量。

DistrictName    | TownName           | CropName    |Pests
Rawalpindi      | pindi              | CIM 506     | 3.3
Rawalpindi      | pindi              | CIM 506     | 3.8
Rawalpindi      | Muree              | CIM 506     | 3.5

但是这个查询一直在给我语法错误,即无效的列名PestPopulation1,在我彻底检查我的列名的拼写时... PestPopuplationvarchar(max)类型

以下是我的查询
SELECT T.DistrictName, T.TownName, T.VarietyOfCrop, avg(T.PestPopulation1)
FROM (
    SELECT DistrictName, TownName,VarietyOfCrop, cast(PestPopulation1 as float) as Pests
    FROM FinalTable2
) as T
group by T.DistrictName, T.TownName, T.VarietyOfCrop

最佳答案

如前所述,问题在于您所引用的列在该范围内不可用。

总共甚至没有充分的理由使用这种人为的查询。这应该也一样工作,并且更具可读性:

SELECT T.DistrictName, T.TownName, T.VarietyOfCrop, avg(cast(T.Pests as float))
FROM FinalTable2 T
group by T.DistrictName, T.TownName, T.VarietyOfCrop

10-08 00:11