Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/68.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
Mysql 如何以正确的方式优化以下SQL问题_Mysql_Sql_Database - Fatal编程技术网

Mysql 如何以正确的方式优化以下SQL问题

Mysql 如何以正确的方式优化以下SQL问题,mysql,sql,database,Mysql,Sql,Database,提供的.CSV文件包含225146条记录,并包含以下字段: FLOW_ID – The unique identifier of the traffic flow measured; LINK_ID – The unique identifier of the road link being measured; LINK_DESC – A description of the road link being measured; FLOW_DIR – The direction of the tr

提供的.CSV文件包含225146条记录,并包含以下字段:

FLOW_ID – The unique identifier of the traffic flow measured;
LINK_ID – The unique identifier of the road link being measured;
LINK_DESC – A description of the road link being measured;
FLOW_DIR – The direction of the traffic flow;
PERIOD_TYPE – The type of period when traffic was measured;
F00 to F33 – The traffic flow measured at each hour, i.e. 0:00, 1:00….23:00
这是主表,将其拆分以便于使用

我分成三张桌子

  • Flow_Dim(Flow_id(pk)、Link_Desc、Flow_Dir)[带分组]
  • Period_Dim(p_id(pk),Period_type)[刚刚通过group by(grouping)获得了三个值]
  • 交通流量事实(流量id(fk)、p\id(fk)、F00到F23,然后是所有24列小时)[插入以下查询使其简单]

    INSERT INTO `Traffic_Flow_Fact` 
        (`flow_id`, `period_id`, `H0`, `H1`, `H2`, `H3`)
        SELECT junk.`FLOW_ID`, p.`p_id`, SUM(junk.`F00`), 
                SUM(junk.`F01`), SUM(junk.`F02`), 
                SUM(junk.`F03`)
    FROM TempJunk junk, Period_Dim p
    WHERE p.`PERIOD_TYPE` = junk.`PERIOD_TYPE`
    GROUP BY p.`PERIOD_TYPE`, junk.`FLOW_ID`, p.`p_id`
    
  • 下表为交通流量事实

    我只想知道是否有其他方法可以在单独的表格中计算小时数和交通流量值,以便我可以找到以下解决方案-

    a) 公共假期、学校假期和正常时间(学期)最繁忙的5个环节是什么?在这些期间,这些链路上的平均流量是多少

    b) 公共假期、学校假期和正常时间(学期)中最不繁忙的3个环节是什么

    c) 莫纳什高速公路连接线的高峰时间是什么?王子路怎么办


    我不希望这些问题有任何答案,仅供参考,以便大家了解需要做什么

    如果您提供示例数据,请参见。。图像对于可重复的例子来说是不好的。你需要规范化,但这已经是你自己的结论了。多多少少。->“我只想知道是否有其他方法可以在单独的表格中计算小时数和交通流量值,以便我可以找到以下解决方案-”。。您可以使用这样的导入/暂存(使用MySQL的导入)表,并使用或将这些数据导入到规范化的表中。。在主导入之后,要转换/导入到规范化表中的触发器或存储过程旨在避免MySQL和应用程序之间需要额外的往返数据..“触发器与插入新数据有关”,请阅读我的第二条注释。。您仍然需要在导入表和规范化表之间“插入”。。。在这种情况下,使用导入后调用的存储过程可能更有用,因为插入触发器可能会在LOAD DATA命令的每条记录上增加“一点”额外开销。@RaymondNijland:太好了,我正在研究这个问题。感谢您的建议。如果您提供示例数据,请参阅。。图像对于可重复的例子来说是不好的。你需要规范化,但这已经是你自己的结论了。多多少少。->“我只想知道是否有其他方法可以在单独的表格中计算小时数和交通流量值,以便我可以找到以下解决方案-”。。您可以使用这样的导入/暂存(使用MySQL的导入)表,并使用或将这些数据导入到规范化的表中。。在主导入之后,要转换/导入到规范化表中的触发器或存储过程旨在避免MySQL和应用程序之间需要额外的往返数据..“触发器与插入新数据有关”,请阅读我的第二条注释。。您仍然需要在导入表和规范化表之间“插入”。。。在这种情况下,使用导入后调用的存储过程可能更有用,因为插入触发器可能会在LOAD DATA命令的每条记录上增加“一点”额外开销。@RaymondNijland:太好了,我正在研究这个问题。谢谢你的建议。