qq_30661027
2015-12-29 06:13
采纳率: 100%
浏览 1.6k

急急急,求sql大神帮忙解决

各位大神们,现在有两张表realtime(send_time,range,oil)和gps(send_time,speed),我要把这两张表的数据汇总到sum表中,sum表的字段有year,month,day,hour,max(range)-min(range),avg(oil),max(speed),avg(speed),sum表记录的是每小时的数据,年月日小时就是send_time里面的,前两张表是每10秒的数据,他们每条数据都是一一对应的,sum表用的是是组合主键,有年月日小时这4个主键,我用的mysql,达到这一操作的sql语句要怎么写啊,我之前想写成一条,总写不好,后来分2条写,第二个update语句又不知道怎么写了,谢谢帮助我的各位大神

  • 写回答
  • 好问题 提建议
  • 追加酬金
  • 关注问题
  • 收藏
  • 邀请回答

5条回答 默认 最新

  • 小小农民 2015-12-29 07:04
    已采纳

    加上left join拼接呢
    select a.* ,b.* from
    (SELECT YEAR(r.send_time) y,MONTH(r.send_time) m,DAY(r.send_time) d,HOUR(r.send_time) h,
    max(r.driving_range)-min(r.driving_range) r,avg(r.avg_oil_a) o
    FROM realtime r GROUP BY DATE_FORMAT(r.sending_time,'%Y-%m-%d %H')) AS a
    LEFT JOIN
    (
    SELECT YEAR(g.send_time) y,MONTH(g.send_time) m,DAY(g.send_time) d,HOUR(g.send_time) h,
    max(g.speed) ms,avg(g.speed) avs
    FROM gps g GROUP BY DATE_FORMAT(g.sending_time,'%Y-%m-%d %H') ) AS b
    on a.y = b.y and a.m= b.m and a.h=b.h and a.d=b.d

    评论
    解决 无用
    打赏 举报
查看更多回答(4条)

相关推荐 更多相似问题