我需要返回数据库表中 12 列中每一列的平均值。 MySQL 只允许获取一列的平均值。以下查询(针对一列)有效:
SELECT station_id, AVG(jan) AS avg_jan
FROM `climate_data`
WHERE element_name = "Temp_mean_mly" AND jan <> -999999
GROUP BY station_id
并且以下(对于多列)没有(我得到语法错误):
SELECT station_id, AVG(jan) AS avg_jan, AVG(feb) AS avg_feb, ... ,
AVG(dec) AS avg_dec
FROM `climate_data`
WHERE element_name = "Temp_mean_mly"
AND jan <> -999999
AND feb <> -999999
AND ...
AND dec <> -999999
GROUP BY station_id
我是否必须使用 12 个子查询才能获得我需要的结果?
最佳答案
1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'dec)
dec是MySQL的保留关键字;在您的查询中将其更改为 `dec` 可能会为您修复该错误:)。
编辑:请注意,您还在 WHERE 子句中使用了它;它可能在那里工作(因为 MySQL 在那里找到关键字是不合逻辑的),但请记住,您可能还必须转义那个关键字:)
关于MySQL和多列的平均值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6597735/