Как сделать следующую задачу SQL более оптимальной и правильной - PullRequest
1 голос
/ 16 октября 2019

В поставляемом файле .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

это основная таблица и разделение ее для упрощения использования

this is the main table and split it to make it simple to use

I Разделить на три таблицы

  1. Flow_Dim (flow_id (pk), Link_Desc, Flow_Dir) [с группировкой]
  2. Period_Dim (p_id (pk), period_type) [только что получил три значения с group by (grouping)]
  3. Traffic_Flow_Fact (flow_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`
    

Ниже приводится таблица Traffic_Flow_Fact

Я просто хочу знать, есть ли другой способ сделать часы и тамзначение транспортного потока в отдельной таблице, чтобы я мог найти следующие решения -

a) Каковы 5 самых загруженных ссылок в часы государственных праздников, школьных каникул и обычного времени (школьный семестр)? Каков средний трафик по этим ссылкам за эти периоды?

b) Каковы 3 наименее загруженных ссылки в часы государственных праздников, школьных каникул и обычного времени (школьный семестр)?

c)Каковы часы наибольшего времени для автострады Монаш? А как насчет ссылок Princes Way?

Я не ожидаю никаких ответов на эти вопросы, они только для справки, чтобы вы, ребята, знали, что нужно сделать

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...