我需要为DB中的一个表中的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个子查询来实现我需要的结果?
感谢您的帮助
答案 0 :(得分:2)
1064 - 您的SQL语法出错;检查与您的MySQL服务器版本对应的手册,以便在'dec)附近使用正确的语法
dec是一个保留的MySQL关键字;在查询中将其更改为“dec”可能会为您解决该错误:)。
编辑:请注意您还在WHERE子句中使用它;它可能在那里工作(因为MySQL在那里找到一个关键字是不合逻辑的),但要记住你可能还必须逃避那个:)