【问题标题】:Sql Statement cutting Rows in halfSql 语句将行切成两半
【发布时间】:2011-10-05 12:54:30
【问题描述】:

这是我当前的 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行 当我将数据输出到 csv 中时,它只放入 1331。

我已经更改了 traffictest 的大小,这适用,除非当我只有 3 行时,它实际上拉出了所有三行。

任何解决此问题的帮助将不胜感激。

【问题讨论】:

  • 我猜问题出在GROUP BY tmc, t.time;太多行组合在一起。如果你删除组,你会得到多少行?也许你应该用group by t.primary_key_of_t替换这个子句

标签: mysql select into-outfile


【解决方案1】:

当您使用GROUP BY时,MySql 每组只返回一行,您有类似 tmc-time 的行,而 MySql 只为所有此类行返回一行,这是行数减少的原因。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-08-31
    • 1970-01-01
    • 2023-02-17
    • 1970-01-01
    • 2011-10-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多