Py学习  »  DATABASE

MYSQL:根据日期/小时将值从一个表传输到另一个表

Frechdachs • 4 年前 • 1341 次点击  

我有以下MYSQL表:

输入表“input”的一部分:

Input Table

输出表“Output”的一部分:

Output table

日期/时间列都是预先给定的,不能更改。它们是我要用于执行以下操作的MYSQL代码的基础: 我想对输入表的“total”列中的所有值求和 同日同时 并将它们放入输出表的“total”列,其中“time”列具有 同日同时 如输入表所示。

只有MYSQL才能做到这一点吗? 或者我也需要PHP? 输入表有大约40万个值。

我从:

SELECT SUM(total) FROM input
WHERE date BETWEEN '2019-06-06 00:00:00' AND '2019-06-06 23:59:59'

但我不知道该怎么继续。

任何帮助都将不胜感激。提前谢谢:)

Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/50199
 
1341 次点击  
文章 [ 2 ]  |  最新文章 4 年前
Sowmya Shankark
Reply   •   1 楼
Sowmya Shankark    4 年前
 UPDATE outputtable,
       (SELECT Sum(total)  SUM,
                Year(date)  year,
                Month(date) month,
                Day(date)   day,
                Hour(date)  hour
         FROM   inputtable
         GROUP  BY Year(date),
                   Month(date),
                   Day(date),
                   Hour(date)) InputT SET    total = InputT.sum WHERE  Year(outputtable.date) = InputT.year
        AND Month(outputtable.date) = InputT.month
        AND Day(outputtable.date) = InputT.day
        AND Hour(outputtable.date) = InputT.hour;
forpas
Reply   •   2 楼
forpas    4 年前

获取输入表中的和并在 UPDATE 声明:

update output o 
inner join (
  select date_format(date, '%Y%m%d%H') hour, sum(total) total
  from input
  group by date_format(date, '%Y%m%d%H')
) i on i.hour = date_format(o.date, '%Y%m%d%H')
set o.total = i.total