2011-10-05 38 views
1

這裏是我當前的SQL查詢SQL語句切割行一半

 SELECT 
    w.city, t.tmc, t.date, t.time, w.event, 
    ROUND(AVG(w.Pave), 0) surface_temperature, 
    ROUND(AVG(w.Air), 0) air_temperature, 
    ROUND(AVG(a.material_rate),0) material_rate, 
    w.intensity, t.avg 
    FROM winter2010.traffictest t 
    LEFT OUTER JOIN winter2010.application a ON a.DATE = t.DATE AND a.tmc = t.tmc AND a.tmc = t.tmc AND Left(a.time,2) = Left(t.time, 2) 
    LEFT OUTER JOIN winter2010.weather w ON t.DATE = w.DATE AND t.tmc = w.tmc AND Left(t.time, 2) = Left(w.time, 2) 
    GROUP BY tmc, t.time 
    INTO OUTFILE 'c:/sass2.csv' FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY '"' LINES 
TERMINATED BY '\n'; 

我創建從下面的SQL語句這個CSV文件和它的作品除了一件事偉大,其僅服用1/2行!

有在traffictest 共2661行,當我OUTFILE將數據導入CSV其唯一把1331

我已經改變了traffictest的大小和該持有除非我真的有3只它實際上拉動了所有三行。

任何幫助搞清楚這一點將不勝感激。

+0

我想這個問題在'GROUP BY tmc,t.time';太多的行被分組在一起。如果你放棄組合,你會得到多少行?也許你應該用'group by t.primary_key_of_t'替換這個子句 – Johan

回答

0

當您使用GROUP BY MySql每個組只返回一行時,您的行具有類似的tmc-time,MySql對於所有這樣的行只返回一行,這就是減少行號的原因。