我正在尝试计算使用相同裁剪品种的城镇中害虫的平均数量..
DistrictName | TownName | CropName |Pests
Rawalpindi | pindi | CIM 506 | 3.3
Rawalpindi | pindi | CIM 506 | 3.8
Rawalpindi | Muree | CIM 506 | 3.5
但是这个查询一直给我语法错误,即无效的列名PestPopulation1
,因为我彻底检查了我的列名的拼写...PestPouplation
是 varchar(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
关于SQL 计算平均值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20164782/