2013-11-14 126 views
0

我有表reg_data 3我每天輸入一個數據值。我想選擇該值的平均值(價值/天數的總和),但降雨量我需要sumation,爲期一個月.....但此代碼無法正常工作。想要選擇每個月的每日價值的平均值

SELECT 
    year(str_to_date(date, '%m/%d/%Y'))as year, 
    month(str_to_date(date, '%m/%d/%Y'))as month, 
    Avg(sunshine_hrs) as sunshine_hrs, 
    AVG(max_temp) as max_temp 
    sum(rainfall) as rainfall 
    avg(evep) as evep 
    avg(min_temp) as min_temp 
FROM 
    reg_data3 
GROUP BY 
    year(str_to_date(date, '%m/%d/%Y')), 
    month(str_to_date(date, '%m/%d/%Y')); 

CREATE TABLE `reg_data3` (
`date` varchar(10) NOT NULL default '', 
`time` time NOT NULL, 
`rainfall` float default NULL, 
`evep` float default NULL, 
`max_temp` float default NULL, 
`min_temp` float default NULL, 
`sunshine_hrs` float default NULL, 
PRIMARY KEY (`date`) 
) ENGINE=MyISAM DEFAULT CHARSET=latin1 
+0

你可以請從表中發表幾行? – ModulusJoe

+0

AVG函數返回平均值。你認爲AVG(降雨)會給你帶來什麼? – AgRizzo

+0

請詳細解釋* ...此代碼無法正常工作... *。你有錯誤嗎?結果是否與預期不同?如果是的話,那麼你的預期結果是什麼?提供一些示例數據。 – peterm

回答

0

您需要在查詢中指定的每個字段(除了最後一個字段之外)後添加逗號。像這樣:

SELECT 
    year(str_to_date(date, '%m/%d/%Y'))as year, 
    month(str_to_date(date, '%m/%d/%Y'))as month, 
    Avg(sunshine_hrs) as sunshine_hrs, 
    AVG(max_temp) as max_temp, 
    sum(rainfall) as rainfall, 
    avg(evep) as evep, 
    avg(min_temp) as min_temp 
FROM 
    reg_data3 
GROUP BY 
    year(str_to_date(date, '%m/%d/%Y')), 
    month(str_to_date(date, '%m/%d/%Y'));