Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/243.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/72.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 基于日期和另一个字段合并Mysql查询中的表行数据。表的行数超过2M_Php_Mysql_Date_Optimization - Fatal编程技术网

Php 基于日期和另一个字段合并Mysql查询中的表行数据。表的行数超过2M

Php 基于日期和另一个字段合并Mysql查询中的表行数据。表的行数超过2M,php,mysql,date,optimization,Php,Mysql,Date,Optimization,这是数据的示例表 ID MC BC TIME AB AT 1 4 10 2016-12-05 09:02:00 5 8 2 4 20 2016-12-15 09:03:00 2 3 3 4 10 2016-12-15 09:02:00 1 4 4 4 20 2016-12-25 09:02:00 3 6 5 4 05 2016-12-05 09:02:

这是数据的示例表

  ID MC BC  TIME                  AB   AT 
   1  4  10  2016-12-05 09:02:00   5    8
   2  4  20  2016-12-15 09:03:00   2    3
   3  4  10  2016-12-15 09:02:00   1    4
   4  4  20  2016-12-25 09:02:00   3    6
   5  4  05  2016-12-05 09:02:00   4    2
   6  4  05  2016-12-08 09:02:00   6    2
   7  4  10  2016-12-11 09:02:00   7    6
   8  4  10  2016-12-05 09:02:00   9    8
   9  4  10  2016-12-15 09:02:00   9    8
  10  4  10  2016-12-15 09:05:00   10   20
  11  5  10  2016-12-15 09:05:00   10   20
  12  5  10  2016-12-15 09:05:00   10   20
  13  5  10  2016-12-15 09:05:00   10   20
如果我查询'MC'=4和'TIME'的位置,比如
2016-12%
,那么我希望根据'TIME'列中的日期合并'AB'和'AT'列的数据,并且每个'BC'都有单独的合并日期

与样本输出一样,第15天有两个“BC”(10,20),它们有两个不同的行

我想要这样的输出

  ID  MC BC  TIME          AB   AT 
   1  4  10  2016-12-05    14   16
   2  4  10  2016-12-11     7    6
   3  4  10  2016-12-15    20   32
   4  4  20  2016-12-15     2    3
   5  4  20  2016-12-25     3    6
   6  4  05  2016-12-05     4    2
   7  4  05  2016-12-08     6    2

表的当月行数超过200万行,如示例表中所示。

AB和AT是如何计算的?简言之,向我们展示您用于计算的公式,您的问题对我来说不清楚,请快速回答。对于AB和AT计算,我们将一行的AB值与“时间”中具有相同“BC”和相同日期的其他行相加。与输出数据的第一行一样,我们添加了示例表第一行和第八行的“AB”。因为他们有同一天的《时代》节目,谢谢里克·詹姆斯,这部电影为我工作,我真的很感谢你们。
SELECT MC,
       BC,
       DATE(`TIME`) AS 'Day'
       SUM(AB) AS AB,
       SUM(AT) AS AT
    FROM tbl
    WHERE `TIME` >= '2016-12-01`
      AND `TIME`  < '2016-12-01` + INTERVAL 1 MONTH
      AND MC = 4
    GROUP BY MC, BC, DATE(`TIME`);
INDEX(MC, `TIME`)