@golemio/waze-tt 1.0.9-dev.628553793 → 1.0.9-dev.634446547
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/db/migrations/postgresql/.config.json +3 -0
- package/db/migrations/postgresql/20220519071520-wazett.js +53 -0
- package/db/migrations/postgresql/20220908064516-analytic-function-and-views.js +53 -0
- package/db/migrations/postgresql/package.json +3 -0
- package/db/migrations/postgresql/sqls/20220519071520-wazett-down.sql +6 -0
- package/db/migrations/postgresql/sqls/20220519071520-wazett-up.sql +127 -0
- package/db/migrations/postgresql/sqls/20220908064516-analytic-function-and-views-down.sql +19 -0
- package/db/migrations/postgresql/sqls/20220908064516-analytic-function-and-views-up.sql +866 -0
- package/db/migrations/postgresql/sqls/package.json +3 -0
- package/dist/integration-engine/WazeTTWorker.d.ts +6 -0
- package/dist/integration-engine/WazeTTWorker.js +75 -52
- package/dist/integration-engine/WazeTTWorker.js.map +1 -1
- package/dist/integration-engine/wazeTTTransformations/WazeTTTransformationsSubRouteLives.d.ts +3 -2
- package/dist/integration-engine/wazeTTTransformations/WazeTTTransformationsSubRouteLives.js +0 -5
- package/dist/integration-engine/wazeTTTransformations/WazeTTTransformationsSubRouteLives.js.map +1 -1
- package/dist/integration-engine/wazeTTTransformations/WazeTTTransformationsSubRoutes.d.ts +3 -2
- package/dist/integration-engine/wazeTTTransformations/WazeTTTransformationsSubRoutes.js +7 -2
- package/dist/integration-engine/wazeTTTransformations/WazeTTTransformationsSubRoutes.js.map +1 -1
- package/dist/integration-engine/wazeTTTransformations/helpers/SubRouteIdHelper.d.ts +8 -0
- package/dist/integration-engine/wazeTTTransformations/helpers/SubRouteIdHelper.js +36 -0
- package/dist/integration-engine/wazeTTTransformations/helpers/SubRouteIdHelper.js.map +1 -0
- package/dist/integration-engine/wazeTTTransformations/interfaces/ISubRoute.d.ts +8 -0
- package/dist/integration-engine/wazeTTTransformations/interfaces/ISubRoute.js +3 -0
- package/dist/integration-engine/wazeTTTransformations/interfaces/ISubRoute.js.map +1 -0
- package/dist/integration-engine/wazeTTTransformations/interfaces/ISubRouteLives.d.ts +9 -0
- package/dist/integration-engine/wazeTTTransformations/interfaces/ISubRouteLives.js +3 -0
- package/dist/integration-engine/wazeTTTransformations/interfaces/ISubRouteLives.js.map +1 -0
- package/dist/schema-definitions/index.d.ts +3 -2
- package/dist/schema-definitions/index.js +12 -12
- package/dist/schema-definitions/index.js.map +1 -1
- package/package.json +4 -1
|
@@ -0,0 +1,866 @@
|
|
|
1
|
+
CREATE SCHEMA IF NOT EXISTS analytic;
|
|
2
|
+
|
|
3
|
+
-- analytic.lkpr_dashboard_route_names definition
|
|
4
|
+
|
|
5
|
+
|
|
6
|
+
CREATE TABLE analytic.lkpr_dashboard_route_names (
|
|
7
|
+
route_type text NULL,
|
|
8
|
+
route_num text NULL,
|
|
9
|
+
route_group_name text NULL,
|
|
10
|
+
order_idx int4 NULL
|
|
11
|
+
);
|
|
12
|
+
|
|
13
|
+
INSERT INTO analytic.lkpr_dashboard_route_names (route_type, route_num, route_group_name, order_idx) VALUES('TN', '01', 'Podbaba => Evropská => letiště', 10);
|
|
14
|
+
INSERT INTO analytic.lkpr_dashboard_route_names (route_type, route_num, route_group_name, order_idx) VALUES('TN', '02', 'Vítězné nám. => Evropská => letiště', 9);
|
|
15
|
+
INSERT INTO analytic.lkpr_dashboard_route_names (route_type, route_num, route_group_name, order_idx) VALUES('TN', '03', 'Letenské náměstí => Hradčanská => Evropská => letiště', 7);
|
|
16
|
+
INSERT INTO analytic.lkpr_dashboard_route_names (route_type, route_num, route_group_name, order_idx) VALUES('TN', '04', 'Letenské náměstí => Bubeneč => Evropská => letiště', 8);
|
|
17
|
+
INSERT INTO analytic.lkpr_dashboard_route_names (route_type, route_num, route_group_name, order_idx) VALUES('TN', '05', 'Smíchov => Horní Liboc => letiště', 3);
|
|
18
|
+
INSERT INTO analytic.lkpr_dashboard_route_names (route_type, route_num, route_group_name, order_idx) VALUES('TN', '06', 'Motol => Horní Liboc => letiště', 2);
|
|
19
|
+
INSERT INTO analytic.lkpr_dashboard_route_names (route_type, route_num, route_group_name, order_idx) VALUES('TN', '07', 'Letenské náměstí => Karlovarská => letiště', 6);
|
|
20
|
+
INSERT INTO analytic.lkpr_dashboard_route_names (route_type, route_num, route_group_name, order_idx) VALUES('TN', '08', 'Smíchov => Karlovarská => letiště', 4);
|
|
21
|
+
INSERT INTO analytic.lkpr_dashboard_route_names (route_type, route_num, route_group_name, order_idx) VALUES('TN', '09', 'Klárov => Karlovarská => letiště', 5);
|
|
22
|
+
INSERT INTO analytic.lkpr_dashboard_route_names (route_type, route_num, route_group_name, order_idx) VALUES('TN', '10', 'Zličín/Řepy => Drnovská => letiště', 1);
|
|
23
|
+
INSERT INTO analytic.lkpr_dashboard_route_names (route_type, route_num, route_group_name, order_idx) VALUES('TN', '11', 'Podbaba => Horoměřice => letiště', 11);
|
|
24
|
+
|
|
25
|
+
-- analytic.barrande_black_list_route definition
|
|
26
|
+
|
|
27
|
+
CREATE TABLE analytic.barrande_black_list_route (
|
|
28
|
+
route_id int8 NOT NULL,
|
|
29
|
+
note varchar(250) NULL,
|
|
30
|
+
created_at timestamptz NULL DEFAULT now(),
|
|
31
|
+
CONSTRAINT barrande_black_list_route_pkey PRIMARY KEY (route_id)
|
|
32
|
+
);
|
|
33
|
+
|
|
34
|
+
INSERT INTO analytic.barrande_black_list_route (route_id, note, created_at) VALUES(1652108561613, NULL, '2022-05-26 20:37:19.412');
|
|
35
|
+
INSERT INTO analytic.barrande_black_list_route (route_id, note, created_at) VALUES(1652106375503, NULL, '2022-05-26 20:37:19.412');
|
|
36
|
+
INSERT INTO analytic.barrande_black_list_route (route_id, note, created_at) VALUES(1652096816287, NULL, '2022-05-26 20:37:19.412');
|
|
37
|
+
INSERT INTO analytic.barrande_black_list_route (route_id, note, created_at) VALUES(32477, NULL, '2022-05-26 20:37:19.412');
|
|
38
|
+
INSERT INTO analytic.barrande_black_list_route (route_id, note, created_at) VALUES(32496, NULL, '2022-05-26 20:37:19.412');
|
|
39
|
+
INSERT INTO analytic.barrande_black_list_route (route_id, note, created_at) VALUES(32497, NULL, '2022-05-26 20:37:19.412');
|
|
40
|
+
INSERT INTO analytic.barrande_black_list_route (route_id, note, created_at) VALUES(33144, NULL, '2022-05-26 20:37:19.412');
|
|
41
|
+
INSERT INTO analytic.barrande_black_list_route (route_id, note, created_at) VALUES(19671439451, NULL, '2022-05-26 20:37:19.412');
|
|
42
|
+
INSERT INTO analytic.barrande_black_list_route (route_id, note, created_at) VALUES(32437, NULL, '2022-05-26 20:37:19.412');
|
|
43
|
+
INSERT INTO analytic.barrande_black_list_route (route_id, note, created_at) VALUES(33057, NULL, '2022-05-26 20:37:19.412');
|
|
44
|
+
INSERT INTO analytic.barrande_black_list_route (route_id, note, created_at) VALUES(11231032274, NULL, '2022-05-26 20:37:19.412');
|
|
45
|
+
INSERT INTO analytic.barrande_black_list_route (route_id, note, created_at) VALUES(33140, NULL, '2022-05-26 20:37:19.412');
|
|
46
|
+
INSERT INTO analytic.barrande_black_list_route (route_id, note, created_at) VALUES(12130815233, NULL, '2022-05-26 20:37:19.412');
|
|
47
|
+
INSERT INTO analytic.barrande_black_list_route (route_id, note, created_at) VALUES(33056, NULL, '2022-05-26 20:37:19.412');
|
|
48
|
+
INSERT INTO analytic.barrande_black_list_route (route_id, note, created_at) VALUES(11489476203, NULL, '2022-05-26 20:37:19.412');
|
|
49
|
+
INSERT INTO analytic.barrande_black_list_route (route_id, note, created_at) VALUES(33139, NULL, '2022-05-26 20:37:19.412');
|
|
50
|
+
INSERT INTO analytic.barrande_black_list_route (route_id, note, created_at) VALUES(13267551138, NULL, '2022-05-26 20:37:19.412');
|
|
51
|
+
INSERT INTO analytic.barrande_black_list_route (route_id, note, created_at) VALUES(33138, NULL, '2022-05-26 20:37:19.412');
|
|
52
|
+
INSERT INTO analytic.barrande_black_list_route (route_id, note, created_at) VALUES(18029801972, NULL, '2022-05-26 20:37:19.412');
|
|
53
|
+
INSERT INTO analytic.barrande_black_list_route (route_id, note, created_at) VALUES(32896, NULL, '2022-05-26 20:37:19.412');
|
|
54
|
+
INSERT INTO analytic.barrande_black_list_route (route_id, note, created_at) VALUES(32876, NULL, '2022-05-26 20:37:19.412');
|
|
55
|
+
INSERT INTO analytic.barrande_black_list_route (route_id, note, created_at) VALUES(11113356540, NULL, '2022-05-26 20:37:19.412');
|
|
56
|
+
INSERT INTO analytic.barrande_black_list_route (route_id, note, created_at) VALUES(33083, NULL, '2022-05-26 20:37:19.412');
|
|
57
|
+
INSERT INTO analytic.barrande_black_list_route (route_id, note, created_at) VALUES(32988, NULL, '2022-05-26 20:37:19.412');
|
|
58
|
+
INSERT INTO analytic.barrande_black_list_route (route_id, note, created_at) VALUES(11605358669, NULL, '2022-05-26 20:37:19.412');
|
|
59
|
+
INSERT INTO analytic.barrande_black_list_route (route_id, note, created_at) VALUES(32594, NULL, '2022-05-26 20:37:19.412');
|
|
60
|
+
INSERT INTO analytic.barrande_black_list_route (route_id, note, created_at) VALUES(32502, NULL, '2022-05-26 20:37:19.412');
|
|
61
|
+
INSERT INTO analytic.barrande_black_list_route (route_id, note, created_at) VALUES(32598, NULL, '2022-05-26 20:37:19.412');
|
|
62
|
+
INSERT INTO analytic.barrande_black_list_route (route_id, note, created_at) VALUES(32886, NULL, '2022-05-26 20:37:19.412');
|
|
63
|
+
INSERT INTO analytic.barrande_black_list_route (route_id, note, created_at) VALUES(32409, NULL, '2022-05-26 20:37:19.412');
|
|
64
|
+
INSERT INTO analytic.barrande_black_list_route (route_id, note, created_at) VALUES(11211603747, 'Nahrazeno narovnanou trasou 1653666818530, ukončena uzavírka (pan Přemek)', '2022-06-01 09:27:21.273');
|
|
65
|
+
|
|
66
|
+
-- analytic.waze_dashboard_route_name definition
|
|
67
|
+
|
|
68
|
+
CREATE TABLE analytic.waze_dashboard_route_name (
|
|
69
|
+
route_id int4 NOT NULL,
|
|
70
|
+
idx int4 NULL,
|
|
71
|
+
"from" varchar(100) NULL,
|
|
72
|
+
"to" varchar(100) NULL,
|
|
73
|
+
db_name varchar(100) NULL,
|
|
74
|
+
"name" varchar(500) NULL,
|
|
75
|
+
CONSTRAINT waze_dashboard_route_name_pkey PRIMARY KEY (route_id)
|
|
76
|
+
);
|
|
77
|
+
|
|
78
|
+
INSERT INTO analytic.waze_dashboard_route_name (route_id, idx, "from", "to", db_name, "name") VALUES(22690, 1, '5. května', 'Bubenská', 'Legerova, Wilsonova Praha', '01a. Z ul. 5. května přes Legerovu a Wilsonovu k Bubenské ul. (z centra)');
|
|
79
|
+
INSERT INTO analytic.waze_dashboard_route_name (route_id, idx, "from", "to", db_name, "name") VALUES(22691, 2, 'Bubenská', '5. května', 'Wilsonova Praha', '01b. Z Bubenské ul. přes Wilsonovu a Legerovu k ul. 5. května (do centra)');
|
|
80
|
+
INSERT INTO analytic.waze_dashboard_route_name (route_id, idx, "from", "to", db_name, "name") VALUES(22697, 3, 'Resslova', 'Jugoslávská', 'Resslova, Ječná Praha', '02a. Od Jiráskova mostu => I.P. Pavlova - z ul. Resslova do ul. Jugoslávská (z centra)');
|
|
81
|
+
INSERT INTO analytic.waze_dashboard_route_name (route_id, idx, "from", "to", db_name, "name") VALUES(22733, 4, 'Anglická', 'Žitná', 'Anglická, Žitná Praha', '02b. Z nám. Míru => ul. Anglická => ul. Žitná => Karlovo náměstí (do centra)');
|
|
82
|
+
INSERT INTO analytic.waze_dashboard_route_name (route_id, idx, "from", "to", db_name, "name") VALUES(22732, 5, 'Národní', 'Národní', 'Národní Praha V-Z', '03a. Ulice Národní od OD Máj po Národní divadlo (z centra)');
|
|
83
|
+
INSERT INTO analytic.waze_dashboard_route_name (route_id, idx, "from", "to", db_name, "name") VALUES(22731, 6, 'Národní', 'Národní', 'Národní Praha Z-V', '03b. Ulice Národní od Národního divadla po OD Máj (do centra)');
|
|
84
|
+
INSERT INTO analytic.waze_dashboard_route_name (route_id, idx, "from", "to", db_name, "name") VALUES(22716, 7, 'Újezd', 'Letenská', 'Újezd, Karmelitská, Letenská Praha', '04a. Újezd => Malostranské nám. => ul. Letenská => Klárov (J-S)');
|
|
85
|
+
INSERT INTO analytic.waze_dashboard_route_name (route_id, idx, "from", "to", db_name, "name") VALUES(22715, 8, 'Valdštejnská', 'Újezd', 'Valdštejnská, Malostranské náměstí, Karmelitská Praha', '04b. Klárov => ul. Valdštejnská => Malostranské nám. => Újezd (S-J)');
|
|
86
|
+
INSERT INTO analytic.waze_dashboard_route_name (route_id, idx, "from", "to", db_name, "name") VALUES(22720, 9, 'Masarykovo nábřeží', 'náměstí Curieových', 'Divadelní, Smetanovo nábřeží, 17. listopadu Praha', '05a. Masarykovo náb. => ul. Divadelní => Smetanovo náb. => ul. 17. listopadu (J-S)');
|
|
87
|
+
INSERT INTO analytic.waze_dashboard_route_name (route_id, idx, "from", "to", db_name, "name") VALUES(22754, 10, 'Dvořákovo nábřeží', 'Smetanovo nábřeží', 'Smetanovo nábřeží Praha', '05b. Z Dvořákova nábřeží => Smetanovo náb. => po Národní divadlo (S-J)');
|
|
88
|
+
INSERT INTO analytic.waze_dashboard_route_name (route_id, idx, "from", "to", db_name, "name") VALUES(22729, 11, 'nábřeží Edvarda Beneše', 'nábřeží Edvarda Beneše', 'nábřeží Edvarda Beneše Praha Z-V', '06a. Náb. Edvarda Beneše od Čechova mostu po Štefánikův most (z centra)');
|
|
89
|
+
INSERT INTO analytic.waze_dashboard_route_name (route_id, idx, "from", "to", db_name, "name") VALUES(22728, 12, 'nábřeží Edvarda Beneše', 'nábřeží Edvarda Beneše', 'nábřeží Edvarda Beneše Praha V-Z', '06b. Náb. Edvarda Beneše od Štefánikova mostu po Čechův most (do centra)');
|
|
90
|
+
INSERT INTO analytic.waze_dashboard_route_name (route_id, idx, "from", "to", db_name, "name") VALUES(22730, 13, 'nábřeží Kapitána Jaroše', 'Argentinská', 'nábřeží Kapitána Jaroše, Bubenské nábřeží Praha', '07a. Z nábřeží Kapitána Jaroše (Hlávkův most) do ul. Argentinská (z centra)');
|
|
91
|
+
INSERT INTO analytic.waze_dashboard_route_name (route_id, idx, "from", "to", db_name, "name") VALUES(22713, 14, 'Chotkova', 'Badeniho', 'Chotkova, Badeniho Praha', '08a. Z Klárova do ul. Badeniho (z centra)');
|
|
92
|
+
INSERT INTO analytic.waze_dashboard_route_name (route_id, idx, "from", "to", db_name, "name") VALUES(22714, 15, 'Badeniho', 'Klárov', 'Badeniho, Chotkova Praha', '08b. Z ul. Badeniho na Klárov (do centra)');
|
|
93
|
+
INSERT INTO analytic.waze_dashboard_route_name (route_id, idx, "from", "to", db_name, "name") VALUES(22725, 16, 'Milady Horákové', 'Milady Horákové', 'Milady Horákové Praha V-Z', '09a. Od ul. Badeniho => ul. Milady Horákové => po Prašný most (z centra)');
|
|
94
|
+
INSERT INTO analytic.waze_dashboard_route_name (route_id, idx, "from", "to", db_name, "name") VALUES(22724, 17, 'Milady Horákové', 'Milady Horákové', 'Milady Horákové Praha Z-V', '09b. Z Prašného mostu => ul. Milady Horákové => po ul. Badeniho (do centra)');
|
|
95
|
+
INSERT INTO analytic.waze_dashboard_route_name (route_id, idx, "from", "to", db_name, "name") VALUES(22723, 18, 'Milady Horákové', 'Patočkova', 'Milady Horákové, Patočkova Praha', '10a. Z Prašného mostu na ul. Patočkova (po Malovanku) (z centra)');
|
|
96
|
+
INSERT INTO analytic.waze_dashboard_route_name (route_id, idx, "from", "to", db_name, "name") VALUES(22722, 19, 'Patočkova', 'Milady Horákové', 'Patočkova, Milady Horákové Praha', '10b. Z ul. Patočkova (od Malovanky) na Prašný most (do centra)');
|
|
97
|
+
INSERT INTO analytic.waze_dashboard_route_name (route_id, idx, "from", "to", db_name, "name") VALUES(22696, 20, 'Pod stadiony', 'Vaníčkova', 'Pod stadiony, Vaníčkova Praha', '11a. Smíchov => Strahov => Malovanka - z ul. Pod stadiony do ul. Vaníčkova (J-S)');
|
|
98
|
+
INSERT INTO analytic.waze_dashboard_route_name (route_id, idx, "from", "to", db_name, "name") VALUES(22695, 21, 'Vaníčkova', 'Pod stadiony', 'Vaníčkova Praha', '11b. Malovanka => Strahov => Smíchov - z ul. Vaníčkova do ul. Pod stadiony (S-J)');
|
|
99
|
+
INSERT INTO analytic.waze_dashboard_route_name (route_id, idx, "from", "to", db_name, "name") VALUES(22705, 22, 'Holečkova', 'Zapova', 'Holečkova Praha', '12a. Z ul. Holečkova do ul. Zapova (z centra)');
|
|
100
|
+
INSERT INTO analytic.waze_dashboard_route_name (route_id, idx, "from", "to", db_name, "name") VALUES(22706, 23, 'Zapova', 'Holečkova', 'Holečkova Praha', '12b. Z ul. Zapova do ul. Holečkova (do centra)');
|
|
101
|
+
INSERT INTO analytic.waze_dashboard_route_name (route_id, idx, "from", "to", db_name, "name") VALUES(22703, 24, 'Plzeňská', 'Plzeňská', 'Plzeňská Praha', '13a. Z ul. Kartouzská do ul. Plzeňská (z centra)');
|
|
102
|
+
INSERT INTO analytic.waze_dashboard_route_name (route_id, idx, "from", "to", db_name, "name") VALUES(22704, 25, 'Vrchlického', 'Duškova', 'Vrchlického, Duškova Praha', '13b. Z ul. Vrchlického do ul. Duškova (do centra)');
|
|
103
|
+
INSERT INTO analytic.waze_dashboard_route_name (route_id, idx, "from", "to", db_name, "name") VALUES(22711, 26, 'Dienzenhoferovy sady', 'Kartouzská', 'V botanice, Kartouzská Praha', '14a. Od Jiráskova mostu => ul. Kartouzská => po ul. Radlická (z centra)');
|
|
104
|
+
INSERT INTO analytic.waze_dashboard_route_name (route_id, idx, "from", "to", db_name, "name") VALUES(22712, 27, 'Vltavská', 'Vltavská', 'Vltavská Praha', '14b. Ulice Vltavská na Smíchově (do centra)');
|
|
105
|
+
INSERT INTO analytic.waze_dashboard_route_name (route_id, idx, "from", "to", db_name, "name") VALUES(22702, 28, 'náměstí Jana Palacha', 'Klárov', 'Mánesův most, Klárov Praha', '15a. Mánesův most (z centra)');
|
|
106
|
+
INSERT INTO analytic.waze_dashboard_route_name (route_id, idx, "from", "to", db_name, "name") VALUES(22701, 29, 'Klárov', 'náměstí Jana Palacha', 'Klárov, Mánesův most Praha', '15b. Mánesův most (do centra)');
|
|
107
|
+
INSERT INTO analytic.waze_dashboard_route_name (route_id, idx, "from", "to", db_name, "name") VALUES(22709, 30, 'Jiráskův most', 'Jiráskův most', 'Jiráskův most Praha V-Z', '16a. Jiráskův most (z centra)');
|
|
108
|
+
INSERT INTO analytic.waze_dashboard_route_name (route_id, idx, "from", "to", db_name, "name") VALUES(22710, 31, 'Jiráskův most', 'Jiráskův most', 'Jiráskův most Praha ZV', '16b. Jiráskův most (do centra)');
|
|
109
|
+
INSERT INTO analytic.waze_dashboard_route_name (route_id, idx, "from", "to", db_name, "name") VALUES(22718, 32, 'Most legií', 'Vítězná', 'Most legií, Vítězná Praha', '17a. Most legií k Újezdu (z centra)');
|
|
110
|
+
INSERT INTO analytic.waze_dashboard_route_name (route_id, idx, "from", "to", db_name, "name") VALUES(22717, 33, 'Vítězná', 'Most legií', 'Vítězná, Most legií Praha', '17b. Most legií z Újezdu (do centra)');
|
|
111
|
+
INSERT INTO analytic.waze_dashboard_route_name (route_id, idx, "from", "to", db_name, "name") VALUES(22693, 34, 'Strakonická', 'V Holešovičkách', 'Bubenečský tunel Praha', '18a. Tunely Zlíchov => Strahov => Blanka - ze Strakonické do ul. V Holešovičkách (J-S)');
|
|
112
|
+
INSERT INTO analytic.waze_dashboard_route_name (route_id, idx, "from", "to", db_name, "name") VALUES(22694, 35, 'V Holešovičkách', 'Strakonická', 'Bubenečský tunel Praha', '18b. Tunely Blanka => Strahov => Zlíchov - z ul. V Holešovičkách na Strakonickou (S-J)');
|
|
113
|
+
INSERT INTO analytic.waze_dashboard_route_name (route_id, idx, "from", "to", db_name, "name") VALUES(24260, 36, 'Evropská', 'Aviatická', 'Evropská - Letiště', '19a. Vítězné nám. => Evropská => LKPR (z centra)');
|
|
114
|
+
INSERT INTO analytic.waze_dashboard_route_name (route_id, idx, "from", "to", db_name, "name") VALUES(24261, 37, 'Aviatická', 'Svatovítská', 'Letiště - Svatovítská', '19b. Z LKPR => ul. Evropská => ul. Velvarská => ul. Gen. Píky => Prašný most (do centra)');
|
|
115
|
+
|
|
116
|
+
|
|
117
|
+
-- analytic.v_barrandov_bridge_route_details source
|
|
118
|
+
|
|
119
|
+
CREATE OR REPLACE VIEW analytic.v_barrandov_bridge_route_details
|
|
120
|
+
AS SELECT re.id,
|
|
121
|
+
re.name,
|
|
122
|
+
re.section,
|
|
123
|
+
re.reverse_direction,
|
|
124
|
+
re.from_name,
|
|
125
|
+
re.to_name,
|
|
126
|
+
re.poradi
|
|
127
|
+
FROM ( SELECT r.id,
|
|
128
|
+
r.name,
|
|
129
|
+
CASE
|
|
130
|
+
WHEN r.name ~~ '% ÚS %'::text THEN true
|
|
131
|
+
WHEN r.name ~~ '% TN %'::text THEN false
|
|
132
|
+
ELSE NULL::boolean
|
|
133
|
+
END AS section,
|
|
134
|
+
CASE
|
|
135
|
+
WHEN r.name ~~ '% OS%'::text THEN true
|
|
136
|
+
ELSE false
|
|
137
|
+
END AS reverse_direction,
|
|
138
|
+
r.from_name,
|
|
139
|
+
r.to_name,
|
|
140
|
+
row_number() OVER (PARTITION BY r.name ORDER BY r.id DESC) AS poradi
|
|
141
|
+
FROM wazett_routes r
|
|
142
|
+
WHERE "left"(r.name, 2) = 'BM'::text) re;
|
|
143
|
+
|
|
144
|
+
-- analytic.v_lkpr_route_details source
|
|
145
|
+
|
|
146
|
+
CREATE OR REPLACE VIEW analytic.v_lkpr_route_details
|
|
147
|
+
AS SELECT re.id,
|
|
148
|
+
re.name,
|
|
149
|
+
re.route_code,
|
|
150
|
+
re.route_name,
|
|
151
|
+
re.from_name,
|
|
152
|
+
re.to_name,
|
|
153
|
+
re.route_type,
|
|
154
|
+
re.route_num,
|
|
155
|
+
re.route_variant,
|
|
156
|
+
CASE
|
|
157
|
+
WHEN re.route_variant = 'A1'::text THEN 'Na letiště'::text
|
|
158
|
+
WHEN re.route_variant = 'B1'::text THEN 'Z letiště'::text
|
|
159
|
+
ELSE 'Ostatní'::text
|
|
160
|
+
END AS direction,
|
|
161
|
+
drn.route_group_name,
|
|
162
|
+
drn.order_idx
|
|
163
|
+
FROM ( SELECT rc.id,
|
|
164
|
+
rc.name,
|
|
165
|
+
rc.route_code,
|
|
166
|
+
rc.route_name,
|
|
167
|
+
rc.from_name,
|
|
168
|
+
rc.to_name,
|
|
169
|
+
split_part(rc.route_code, '-'::text, 1) AS route_type,
|
|
170
|
+
split_part(rc.route_code, '-'::text, 2) AS route_num,
|
|
171
|
+
split_part(rc.route_code, '-'::text, 3) AS route_variant
|
|
172
|
+
FROM ( SELECT r.id,
|
|
173
|
+
r.name,
|
|
174
|
+
split_part(r.name, ' '::text, 1) AS route_code,
|
|
175
|
+
"substring"(r.name, "position"(r.name, ' '::text) + 1) AS route_name,
|
|
176
|
+
r.from_name,
|
|
177
|
+
r.to_name
|
|
178
|
+
FROM wazett_routes r
|
|
179
|
+
WHERE r.feed_id = 1) rc) re
|
|
180
|
+
LEFT JOIN analytic.lkpr_dashboard_route_names drn ON re.route_type = drn.route_type AND re.route_num = drn.route_num
|
|
181
|
+
ORDER BY drn.order_idx;
|
|
182
|
+
|
|
183
|
+
-- analytic.v_barrande_route source
|
|
184
|
+
|
|
185
|
+
CREATE OR REPLACE VIEW analytic.v_barrande_route
|
|
186
|
+
AS SELECT DISTINCT ON (wazett_routes.name) wazett_routes.name,
|
|
187
|
+
CASE
|
|
188
|
+
WHEN "position"(wazett_routes.name, ' TN'::text) > 0 THEN true
|
|
189
|
+
ELSE false
|
|
190
|
+
END AS is_trasa,
|
|
191
|
+
CASE
|
|
192
|
+
WHEN "position"(wazett_routes.name, ' ÚS'::text) > 0 THEN true
|
|
193
|
+
ELSE false
|
|
194
|
+
END AS is_usek,
|
|
195
|
+
CASE
|
|
196
|
+
WHEN "position"(wazett_routes.name, ' OS'::text) > 0 THEN true
|
|
197
|
+
ELSE false
|
|
198
|
+
END AS is_opacny_smer,
|
|
199
|
+
CASE
|
|
200
|
+
WHEN wazett_routes.id = ANY (ARRAY[32875, 32876]) THEN 'OICT 3 DO'::text
|
|
201
|
+
WHEN wazett_routes.id = ANY (ARRAY[32888, 32889]) THEN 'OICT 3 OD'::text
|
|
202
|
+
ELSE "substring"(wazett_routes.name, 4,
|
|
203
|
+
CASE
|
|
204
|
+
WHEN "position"(wazett_routes.name, ' TN'::text) > 0 THEN "position"(wazett_routes.name, ' TN'::text) - 3
|
|
205
|
+
WHEN "position"(wazett_routes.name, ' ÚS'::text) > 0 THEN "position"(wazett_routes.name, ' ÚS'::text) - 3
|
|
206
|
+
ELSE NULL::integer
|
|
207
|
+
END)
|
|
208
|
+
END AS name_trasa,
|
|
209
|
+
"substring"(wazett_routes.name,
|
|
210
|
+
CASE
|
|
211
|
+
WHEN "position"(wazett_routes.name, ' ÚS'::text) > 0 THEN "position"(wazett_routes.name, ' ÚS'::text) + 4
|
|
212
|
+
ELSE length(wazett_routes.name) + 1
|
|
213
|
+
END,
|
|
214
|
+
CASE
|
|
215
|
+
WHEN "position"(wazett_routes.name, ' OS'::text) > 0 THEN "position"(wazett_routes.name, ' OS'::text) - "position"(wazett_routes.name, ' ÚS'::text) - 4
|
|
216
|
+
ELSE length(wazett_routes.name) - "position"(wazett_routes.name, ' ÚS'::text)
|
|
217
|
+
END) AS name_usek
|
|
218
|
+
FROM wazett_routes
|
|
219
|
+
WHERE "left"(wazett_routes.name, 2) = 'BM'::text AND NOT (EXISTS ( SELECT 1
|
|
220
|
+
FROM analytic.barrande_black_list_route bl
|
|
221
|
+
WHERE bl.route_id = wazett_routes.id))
|
|
222
|
+
ORDER BY wazett_routes.name, wazett_routes.created_at DESC;
|
|
223
|
+
|
|
224
|
+
-- analytic.v_wazett_routes_lines source
|
|
225
|
+
|
|
226
|
+
CREATE OR REPLACE VIEW analytic.v_wazett_routes_lines
|
|
227
|
+
AS SELECT wazett_routes.id,
|
|
228
|
+
wazett_routes.name,
|
|
229
|
+
st_astext(wazett_routes.line) AS line,
|
|
230
|
+
concat('#', "left"(lpad(to_hex((wazett_routes.id::double precision * character_length(wazett_routes.name)::double precision / (( SELECT max(wazett_routes_1.id * character_length(wazett_routes_1.name)) AS max
|
|
231
|
+
FROM wazett_routes wazett_routes_1))::double precision * 10000000::double precision)::bigint), 6, '0'::text), 6)) AS color
|
|
232
|
+
FROM wazett_routes;
|
|
233
|
+
|
|
234
|
+
-- analytic.v_barrandov_bridge_route_live source
|
|
235
|
+
|
|
236
|
+
CREATE OR REPLACE VIEW analytic.v_barrandov_bridge_route_live
|
|
237
|
+
AS SELECT wrl.route_id,
|
|
238
|
+
wrl.update_time,
|
|
239
|
+
wrl."time",
|
|
240
|
+
wrl.length,
|
|
241
|
+
wrl.historic_time,
|
|
242
|
+
wrl.jam_level,
|
|
243
|
+
wrl.create_batch_id,
|
|
244
|
+
wrl.created_at,
|
|
245
|
+
wrl.created_by,
|
|
246
|
+
wrl.update_batch_id,
|
|
247
|
+
wrl.updated_at,
|
|
248
|
+
wrl.updated_by
|
|
249
|
+
FROM wazett_route_lives wrl
|
|
250
|
+
WHERE (wrl.route_id IN ( SELECT DISTINCT wazett_routes.id
|
|
251
|
+
FROM wazett_routes
|
|
252
|
+
WHERE wazett_routes.name ~~ 'BM %'::text)) AND wrl.update_time::double precision >= (date_part('epoch'::text, CURRENT_DATE - '7 days'::interval) * 1000::double precision);
|
|
253
|
+
|
|
254
|
+
|
|
255
|
+
-- analytic.v_route_live source
|
|
256
|
+
|
|
257
|
+
CREATE OR REPLACE VIEW analytic.v_route_live
|
|
258
|
+
AS SELECT wrl.route_id,
|
|
259
|
+
wrl.update_time,
|
|
260
|
+
wrl."time",
|
|
261
|
+
wrl.length,
|
|
262
|
+
wrl.historic_time,
|
|
263
|
+
wrl.jam_level,
|
|
264
|
+
wrl.create_batch_id,
|
|
265
|
+
wrl.created_at,
|
|
266
|
+
wrl.created_by,
|
|
267
|
+
wrl.update_batch_id,
|
|
268
|
+
wrl.updated_at,
|
|
269
|
+
wrl.updated_by
|
|
270
|
+
FROM wazett_route_lives wrl
|
|
271
|
+
WHERE (wrl.route_id = ANY (ARRAY[24949, 24953, 24962, 24924, 24925, 24950, 24951, 24952, 24954, 24955, 24956, 24957, 24958, 24960, 24961, 24963, 24964, 24965, 24966, 24967, 24968, 24969])) AND wrl.update_time::double precision >= (( SELECT max(wazett_route_lives.update_time)::double precision - date_part('epoch'::text, '1 year'::interval) * 1000::double precision AS max
|
|
272
|
+
FROM wazett_route_lives));
|
|
273
|
+
|
|
274
|
+
-- analytic.v_instatntomtom_days source
|
|
275
|
+
|
|
276
|
+
CREATE OR REPLACE VIEW analytic.v_instatntomtom_days
|
|
277
|
+
AS SELECT to_char(to_timestamp((wrl.update_time / 1000)::double precision), 'yyyy-mm-dd'::text) AS day_index,
|
|
278
|
+
wrl.route_id,
|
|
279
|
+
round(avg(wrl."time"::numeric / wrl.historic_time::numeric), 2) AS t_index_value,
|
|
280
|
+
count(*) AS t_index_count
|
|
281
|
+
FROM wazett_route_lives wrl
|
|
282
|
+
WHERE to_timestamp((wrl.update_time / 1000)::double precision)::time without time zone >= '05:00:00'::time without time zone AND to_timestamp((wrl.update_time / 1000)::double precision)::time without time zone <= '21:00:00'::time without time zone
|
|
283
|
+
GROUP BY (to_char(to_timestamp((wrl.update_time / 1000)::double precision), 'yyyy-mm-dd'::text)), wrl.route_id;
|
|
284
|
+
|
|
285
|
+
-- analytic.v_route_travel_times source
|
|
286
|
+
|
|
287
|
+
CREATE OR REPLACE VIEW analytic.v_route_travel_times
|
|
288
|
+
AS SELECT ts.route_id,
|
|
289
|
+
ts.year,
|
|
290
|
+
ts.month,
|
|
291
|
+
ts.day,
|
|
292
|
+
ts.dow,
|
|
293
|
+
ts.hour,
|
|
294
|
+
ts.quarter,
|
|
295
|
+
ts.hour + (ts.quarter::numeric / 60::numeric)::double precision AS hour_quarter,
|
|
296
|
+
((((((((ts.year || '-'::text) || ts.month) || '-'::text) || ts.day) || ' '::text) || ts.hour) || ':'::text) || ts.quarter)::timestamp without time zone AS date,
|
|
297
|
+
avg(ts.travel_time)::integer AS travel_time
|
|
298
|
+
FROM ( SELECT raw.route_id,
|
|
299
|
+
raw.update_time,
|
|
300
|
+
raw.travel_time,
|
|
301
|
+
date_part('year'::text, raw.update_time) AS year,
|
|
302
|
+
date_part('month'::text, raw.update_time) AS month,
|
|
303
|
+
date_part('day'::text, raw.update_time) AS day,
|
|
304
|
+
date_part('dow'::text, raw.update_time) AS dow,
|
|
305
|
+
date_part('hour'::text, raw.update_time) AS hour,
|
|
306
|
+
date_part('minute'::text, raw.update_time) AS minute,
|
|
307
|
+
date_part('minute'::text, raw.update_time)::integer / 15 * 15 AS quarter
|
|
308
|
+
FROM ( SELECT wazett_route_lives.route_id,
|
|
309
|
+
timezone('Europe/Prague'::text, to_timestamp((wazett_route_lives.update_time / 1000)::double precision)::timestamp without time zone) AS update_time,
|
|
310
|
+
wazett_route_lives."time" AS travel_time
|
|
311
|
+
FROM wazett_route_lives
|
|
312
|
+
JOIN analytic.waze_dashboard_route_name wdrn ON wdrn.route_id = wazett_route_lives.route_id) raw) ts
|
|
313
|
+
WHERE ts.year > 2000::double precision
|
|
314
|
+
GROUP BY ts.route_id, ts.year, ts.month, ts.day, ts.dow, ts.hour, ts.quarter;
|
|
315
|
+
|
|
316
|
+
-- analytic.v_barrande_last_update source
|
|
317
|
+
|
|
318
|
+
CREATE OR REPLACE VIEW analytic.v_barrande_last_update
|
|
319
|
+
AS SELECT to_timestamp((wrl.update_time / 1000)::double precision) AS last_update
|
|
320
|
+
FROM wazett_route_lives wrl
|
|
321
|
+
LEFT JOIN wazett_routes wr ON wrl.route_id = wr.id
|
|
322
|
+
WHERE "left"(wr.name, 3) = 'BM '::text
|
|
323
|
+
ORDER BY wrl.update_time DESC
|
|
324
|
+
LIMIT 1;
|
|
325
|
+
|
|
326
|
+
|
|
327
|
+
|
|
328
|
+
|
|
329
|
+
-- public.v_lkpr_export source
|
|
330
|
+
|
|
331
|
+
CREATE OR REPLACE VIEW public.v_lkpr_export
|
|
332
|
+
AS SELECT COALESCE(vrd.id, wrl.route_id) AS route_id,
|
|
333
|
+
vrd.name,
|
|
334
|
+
vrd.route_name,
|
|
335
|
+
vrd.from_name,
|
|
336
|
+
vrd.to_name,
|
|
337
|
+
vrd.route_num,
|
|
338
|
+
vrd.direction,
|
|
339
|
+
vrd.order_idx,
|
|
340
|
+
to_timestamp((wrl.update_time / 1000)::double precision) AS update_time,
|
|
341
|
+
wrl."time" AS actual_time,
|
|
342
|
+
round(wrl.length::numeric * 3.6 / wrl."time"::numeric) AS actual_speed,
|
|
343
|
+
wrl.historic_time,
|
|
344
|
+
round(wrl.length::numeric * 3.6 / wrl.historic_time::numeric) AS historic_speed,
|
|
345
|
+
wrl.length
|
|
346
|
+
FROM analytic.v_lkpr_route_details vrd
|
|
347
|
+
FULL JOIN wazett_route_lives wrl ON vrd.id = wrl.route_id
|
|
348
|
+
WHERE vrd.name ~~ 'TN-%'::text OR vrd.route_code ~~ 'TN-%'::text;
|
|
349
|
+
|
|
350
|
+
-- analytic.v_barrande_route_hour_core source
|
|
351
|
+
|
|
352
|
+
CREATE OR REPLACE VIEW analytic.v_barrande_route_hour_core
|
|
353
|
+
AS SELECT wr.name,
|
|
354
|
+
to_timestamp((rl.update_time / 1000)::double precision)::date AS datum,
|
|
355
|
+
date_part('hour'::text, to_timestamp((rl.update_time / 1000)::double precision)) AS hodina,
|
|
356
|
+
(to_char(date_part('hour'::text, to_timestamp((rl.update_time / 1000)::double precision)), '09'::text) || ' -'::text) || to_char(date_part('hour'::text, to_timestamp((rl.update_time / 1000)::double precision)) + 1::double precision, '09'::text) AS cas_interval,
|
|
357
|
+
round(avg(rl."time"), 2) AS avg_time,
|
|
358
|
+
round(avg(rl.length * 1000 / (rl."time" * 360)), 2) AS avg_speed
|
|
359
|
+
FROM wazett_route_lives rl
|
|
360
|
+
JOIN wazett_routes wr ON wr.id = rl.route_id
|
|
361
|
+
WHERE rl.length > 0 AND "left"(wr.name, 2) = 'BM'::text AND NOT (EXISTS ( SELECT 1
|
|
362
|
+
FROM analytic.barrande_black_list_route bl
|
|
363
|
+
WHERE bl.route_id = rl.route_id))
|
|
364
|
+
GROUP BY wr.name, (to_timestamp((rl.update_time / 1000)::double precision)::date), (date_part('hour'::text, to_timestamp((rl.update_time / 1000)::double precision)));
|
|
365
|
+
|
|
366
|
+
|
|
367
|
+
|
|
368
|
+
|
|
369
|
+
-- analytic.mv_barrande_normal source
|
|
370
|
+
|
|
371
|
+
CREATE MATERIALIZED VIEW analytic.mv_barrande_normal
|
|
372
|
+
TABLESPACE pg_default
|
|
373
|
+
AS SELECT vtbh.name,
|
|
374
|
+
vtbh.hodina,
|
|
375
|
+
round(avg(vtbh.avg_time), 2) AS avg_time,
|
|
376
|
+
round(avg(vtbh.avg_speed)) AS avg_speed
|
|
377
|
+
FROM analytic.v_barrande_route_hour_core vtbh
|
|
378
|
+
WHERE vtbh.datum >= '2022-04-24'::date AND vtbh.datum <= '2022-05-05'::date AND (date_part('dow'::text, vtbh.datum) = ANY (ARRAY[2::double precision, 3::double precision, 4::double precision]))
|
|
379
|
+
GROUP BY vtbh.name, vtbh.hodina
|
|
380
|
+
WITH DATA;
|
|
381
|
+
|
|
382
|
+
-- View indexes:
|
|
383
|
+
CREATE INDEX mv_barrande_normal_idx ON analytic.mv_barrande_normal USING btree (name, hodina);
|
|
384
|
+
|
|
385
|
+
-- analytic.v_barrande_route_hour source
|
|
386
|
+
|
|
387
|
+
CREATE OR REPLACE VIEW analytic.v_barrande_route_hour
|
|
388
|
+
AS SELECT p.name,
|
|
389
|
+
p.datum,
|
|
390
|
+
p.hodina,
|
|
391
|
+
p.cas_interval,
|
|
392
|
+
p.avg_time,
|
|
393
|
+
p.avg_speed,
|
|
394
|
+
n.avg_time AS normal_avg_time,
|
|
395
|
+
n.avg_speed AS normal_avg_speed
|
|
396
|
+
FROM analytic.v_barrande_route_hour_core p
|
|
397
|
+
LEFT JOIN analytic.mv_barrande_normal n ON n.name = p.name AND p.hodina = n.hodina;
|
|
398
|
+
|
|
399
|
+
-- analytic.v_barrande_union_time_interval source
|
|
400
|
+
|
|
401
|
+
CREATE OR REPLACE VIEW analytic.v_barrande_union_time_interval
|
|
402
|
+
AS WITH hodiny AS (
|
|
403
|
+
SELECT brh.name,
|
|
404
|
+
brh.datum,
|
|
405
|
+
brh.hodina,
|
|
406
|
+
brh.cas_interval,
|
|
407
|
+
brh.avg_time,
|
|
408
|
+
brh.avg_speed,
|
|
409
|
+
brh.normal_avg_time,
|
|
410
|
+
brh.normal_avg_speed
|
|
411
|
+
FROM analytic.v_barrande_route_hour brh
|
|
412
|
+
WHERE brh.datum < CURRENT_DATE OR brh.hodina < date_part('hour'::text, now())
|
|
413
|
+
), den AS (
|
|
414
|
+
SELECT hodiny.name,
|
|
415
|
+
hodiny.datum,
|
|
416
|
+
'0 - 24h'::text AS cas_interval,
|
|
417
|
+
round(avg(hodiny.avg_time), 2) AS avg_time,
|
|
418
|
+
round(avg(hodiny.avg_speed), 2) AS avg_speed,
|
|
419
|
+
round(avg(hodiny.normal_avg_time), 2) AS normal_avg_time,
|
|
420
|
+
round(avg(hodiny.normal_avg_speed), 2) AS normal_avg_speed
|
|
421
|
+
FROM hodiny
|
|
422
|
+
WHERE hodiny.datum < CURRENT_DATE
|
|
423
|
+
GROUP BY hodiny.name, hodiny.datum
|
|
424
|
+
), h15_18 AS (
|
|
425
|
+
SELECT hodiny.name,
|
|
426
|
+
hodiny.datum,
|
|
427
|
+
'15 -18'::text AS cas_interval,
|
|
428
|
+
round(avg(hodiny.avg_time), 2) AS avg_time,
|
|
429
|
+
round(avg(hodiny.avg_speed), 2) AS avg_speed,
|
|
430
|
+
round(avg(hodiny.normal_avg_time), 2) AS normal_avg_time,
|
|
431
|
+
round(avg(hodiny.normal_avg_speed), 2) AS normal_avg_speed
|
|
432
|
+
FROM hodiny
|
|
433
|
+
WHERE hodiny.hodina >= 15::double precision AND hodiny.hodina <= 17::double precision AND (hodiny.datum < CURRENT_DATE OR hodiny.hodina > 17::double precision)
|
|
434
|
+
GROUP BY hodiny.name, hodiny.datum
|
|
435
|
+
), h22_6 AS (
|
|
436
|
+
SELECT hodiny.name,
|
|
437
|
+
hodiny.datum,
|
|
438
|
+
'22 - 06'::text AS cas_interval,
|
|
439
|
+
round(avg(hodiny.avg_time), 2) AS avg_time,
|
|
440
|
+
round(avg(hodiny.avg_speed), 2) AS avg_speed,
|
|
441
|
+
round(avg(hodiny.normal_avg_time), 2) AS normal_avg_time,
|
|
442
|
+
round(avg(hodiny.normal_avg_speed), 2) AS normal_avg_speed
|
|
443
|
+
FROM hodiny
|
|
444
|
+
WHERE NOT (hodiny.hodina >= 6::double precision AND hodiny.hodina <= 21::double precision) AND hodiny.datum < CURRENT_DATE
|
|
445
|
+
GROUP BY hodiny.name, hodiny.datum
|
|
446
|
+
), h6_22 AS (
|
|
447
|
+
SELECT hodiny.name,
|
|
448
|
+
hodiny.datum,
|
|
449
|
+
'06 - 22'::text AS cas_interval,
|
|
450
|
+
round(avg(hodiny.avg_time), 2) AS avg_time,
|
|
451
|
+
round(avg(hodiny.avg_speed), 2) AS avg_speed,
|
|
452
|
+
round(avg(hodiny.normal_avg_time), 2) AS normal_avg_time,
|
|
453
|
+
round(avg(hodiny.normal_avg_speed), 2) AS normal_avg_speed
|
|
454
|
+
FROM hodiny
|
|
455
|
+
WHERE hodiny.hodina >= 6::double precision AND hodiny.hodina <= 21::double precision AND (hodiny.datum < CURRENT_DATE OR hodiny.hodina > 21::double precision)
|
|
456
|
+
GROUP BY hodiny.name, hodiny.datum
|
|
457
|
+
), h7_10 AS (
|
|
458
|
+
SELECT hodiny.name,
|
|
459
|
+
hodiny.datum,
|
|
460
|
+
'07 - 10'::text AS cas_interval,
|
|
461
|
+
round(avg(hodiny.avg_time), 2) AS avg_time,
|
|
462
|
+
round(avg(hodiny.avg_speed), 2) AS avg_speed,
|
|
463
|
+
round(avg(hodiny.normal_avg_time), 2) AS normal_avg_time,
|
|
464
|
+
round(avg(hodiny.normal_avg_speed), 2) AS normal_avg_speed
|
|
465
|
+
FROM hodiny
|
|
466
|
+
WHERE hodiny.hodina >= 7::double precision AND hodiny.hodina <= 9::double precision AND (hodiny.datum < CURRENT_DATE OR hodiny.hodina > 10::double precision)
|
|
467
|
+
GROUP BY hodiny.name, hodiny.datum
|
|
468
|
+
), h7_11_15_19 AS (
|
|
469
|
+
SELECT hodiny.name,
|
|
470
|
+
hodiny.datum,
|
|
471
|
+
'07 - 11, 15 - 19'::text AS cas_interval,
|
|
472
|
+
round(avg(hodiny.avg_time), 2) AS avg_time,
|
|
473
|
+
round(avg(hodiny.avg_speed), 2) AS avg_speed,
|
|
474
|
+
round(avg(hodiny.normal_avg_time), 2) AS normal_avg_time,
|
|
475
|
+
round(avg(hodiny.normal_avg_speed), 2) AS normal_avg_speed
|
|
476
|
+
FROM hodiny
|
|
477
|
+
WHERE (hodiny.hodina >= 7::double precision AND hodiny.hodina <= 10::double precision OR hodiny.hodina >= 15::double precision AND hodiny.hodina <= 18::double precision) AND (hodiny.datum < CURRENT_DATE OR hodiny.hodina > 18::double precision)
|
|
478
|
+
GROUP BY hodiny.name, hodiny.datum
|
|
479
|
+
)
|
|
480
|
+
SELECT hodiny.name,
|
|
481
|
+
hodiny.datum,
|
|
482
|
+
hodiny.cas_interval,
|
|
483
|
+
hodiny.avg_time,
|
|
484
|
+
hodiny.avg_speed,
|
|
485
|
+
hodiny.normal_avg_time,
|
|
486
|
+
hodiny.normal_avg_speed
|
|
487
|
+
FROM hodiny
|
|
488
|
+
UNION ALL
|
|
489
|
+
SELECT den.name,
|
|
490
|
+
den.datum,
|
|
491
|
+
den.cas_interval,
|
|
492
|
+
den.avg_time,
|
|
493
|
+
den.avg_speed,
|
|
494
|
+
den.normal_avg_time,
|
|
495
|
+
den.normal_avg_speed
|
|
496
|
+
FROM den
|
|
497
|
+
UNION ALL
|
|
498
|
+
SELECT h15_18.name,
|
|
499
|
+
h15_18.datum,
|
|
500
|
+
h15_18.cas_interval,
|
|
501
|
+
h15_18.avg_time,
|
|
502
|
+
h15_18.avg_speed,
|
|
503
|
+
h15_18.normal_avg_time,
|
|
504
|
+
h15_18.normal_avg_speed
|
|
505
|
+
FROM h15_18
|
|
506
|
+
UNION ALL
|
|
507
|
+
SELECT h22_6.name,
|
|
508
|
+
h22_6.datum,
|
|
509
|
+
h22_6.cas_interval,
|
|
510
|
+
h22_6.avg_time,
|
|
511
|
+
h22_6.avg_speed,
|
|
512
|
+
h22_6.normal_avg_time,
|
|
513
|
+
h22_6.normal_avg_speed
|
|
514
|
+
FROM h22_6
|
|
515
|
+
UNION ALL
|
|
516
|
+
SELECT h6_22.name,
|
|
517
|
+
h6_22.datum,
|
|
518
|
+
h6_22.cas_interval,
|
|
519
|
+
h6_22.avg_time,
|
|
520
|
+
h6_22.avg_speed,
|
|
521
|
+
h6_22.normal_avg_time,
|
|
522
|
+
h6_22.normal_avg_speed
|
|
523
|
+
FROM h6_22
|
|
524
|
+
UNION ALL
|
|
525
|
+
SELECT h7_10.name,
|
|
526
|
+
h7_10.datum,
|
|
527
|
+
h7_10.cas_interval,
|
|
528
|
+
h7_10.avg_time,
|
|
529
|
+
h7_10.avg_speed,
|
|
530
|
+
h7_10.normal_avg_time,
|
|
531
|
+
h7_10.normal_avg_speed
|
|
532
|
+
FROM h7_10
|
|
533
|
+
UNION ALL
|
|
534
|
+
SELECT h7_11_15_19.name,
|
|
535
|
+
h7_11_15_19.datum,
|
|
536
|
+
h7_11_15_19.cas_interval,
|
|
537
|
+
h7_11_15_19.avg_time,
|
|
538
|
+
h7_11_15_19.avg_speed,
|
|
539
|
+
h7_11_15_19.normal_avg_time,
|
|
540
|
+
h7_11_15_19.normal_avg_speed
|
|
541
|
+
FROM h7_11_15_19;
|
|
542
|
+
|
|
543
|
+
-- analytic.v_barrande_data_all source
|
|
544
|
+
|
|
545
|
+
CREATE OR REPLACE VIEW analytic.v_barrande_data_all
|
|
546
|
+
AS WITH data1 AS (
|
|
547
|
+
SELECT trasy.name,
|
|
548
|
+
trasy.name_trasa,
|
|
549
|
+
trasy.name_usek,
|
|
550
|
+
CASE
|
|
551
|
+
WHEN trasy.is_opacny_smer THEN 'Zpět'::text
|
|
552
|
+
ELSE 'Tam'::text
|
|
553
|
+
END AS smer,
|
|
554
|
+
vbu.datum,
|
|
555
|
+
vbu.cas_interval,
|
|
556
|
+
vbu.avg_time,
|
|
557
|
+
vbu.avg_speed,
|
|
558
|
+
vbu.normal_avg_time,
|
|
559
|
+
vbu.normal_avg_speed
|
|
560
|
+
FROM analytic.v_barrande_union_time_interval vbu
|
|
561
|
+
JOIN analytic.v_barrande_route trasy ON trasy.name = vbu.name
|
|
562
|
+
), data2 AS (
|
|
563
|
+
SELECT data1.name_trasa,
|
|
564
|
+
data1.name_usek,
|
|
565
|
+
'Oba'::text AS smer,
|
|
566
|
+
data1.datum,
|
|
567
|
+
data1.cas_interval,
|
|
568
|
+
sum(data1.avg_time) AS avg_time,
|
|
569
|
+
avg(data1.avg_speed) AS avg_speed,
|
|
570
|
+
sum(data1.normal_avg_time) AS normal_avg_time,
|
|
571
|
+
avg(data1.normal_avg_speed) AS normal_avg_speed
|
|
572
|
+
FROM data1
|
|
573
|
+
GROUP BY data1.name_trasa, data1.name_usek, 'Oba'::text, data1.datum, data1.cas_interval
|
|
574
|
+
)
|
|
575
|
+
SELECT data1.name,
|
|
576
|
+
data1.name_trasa,
|
|
577
|
+
data1.name_usek,
|
|
578
|
+
data1.smer,
|
|
579
|
+
data1.datum,
|
|
580
|
+
data1.cas_interval,
|
|
581
|
+
data1.avg_time,
|
|
582
|
+
data1.avg_speed,
|
|
583
|
+
data1.normal_avg_time,
|
|
584
|
+
data1.normal_avg_speed
|
|
585
|
+
FROM data1
|
|
586
|
+
UNION
|
|
587
|
+
SELECT vbt.name,
|
|
588
|
+
data2.name_trasa,
|
|
589
|
+
data2.name_usek,
|
|
590
|
+
data2.smer,
|
|
591
|
+
data2.datum,
|
|
592
|
+
data2.cas_interval,
|
|
593
|
+
data2.avg_time,
|
|
594
|
+
data2.avg_speed,
|
|
595
|
+
data2.normal_avg_time,
|
|
596
|
+
data2.normal_avg_speed
|
|
597
|
+
FROM data2
|
|
598
|
+
JOIN analytic.v_barrande_route vbt ON vbt.name_trasa = data2.name_trasa AND vbt.name_usek = data2.name_usek AND NOT vbt.is_opacny_smer;
|
|
599
|
+
|
|
600
|
+
|
|
601
|
+
|
|
602
|
+
|
|
603
|
+
CREATE OR REPLACE PROCEDURE analytic.update_barande()
|
|
604
|
+
LANGUAGE plpgsql
|
|
605
|
+
AS $procedure$
|
|
606
|
+
declare
|
|
607
|
+
lastupdatetimestamp timestamptz;
|
|
608
|
+
lastupdateunix bigint;
|
|
609
|
+
begin
|
|
610
|
+
select
|
|
611
|
+
case
|
|
612
|
+
when start_day is not null
|
|
613
|
+
then start_day
|
|
614
|
+
else '2021-01-01'
|
|
615
|
+
end as start_day_from into lastupdatetimestamp
|
|
616
|
+
from (select max(datum)-interval '1 days' start_day from analytic.barrande_route_hour_core) barandemax;
|
|
617
|
+
|
|
618
|
+
lastupdateunix := extract ('epoch' from lastupdatetimestamp) * 1000;
|
|
619
|
+
|
|
620
|
+
|
|
621
|
+
insert into analytic.barrande_route_hour_core
|
|
622
|
+
SELECT
|
|
623
|
+
wr.name,
|
|
624
|
+
to_timestamp((rl.update_time / 1000)::double precision)::date AS datum,
|
|
625
|
+
date_part('hour'::text, to_timestamp((rl.update_time / 1000)::double precision)) AS hodina,
|
|
626
|
+
(to_char(date_part('hour'::text, to_timestamp((rl.update_time / 1000)::double precision)), '09'::text) || ' -'::text) || to_char(date_part('hour'::text, to_timestamp((rl.update_time / 1000)::double precision)) + 1::double precision, '09'::text) AS cas_interval,
|
|
627
|
+
round(avg(rl."time"), 2) AS avg_time,
|
|
628
|
+
round(avg(rl.length * 1000 / (rl."time" * 360)), 2) AS avg_speed
|
|
629
|
+
FROM wazett_route_lives rl
|
|
630
|
+
JOIN wazett_routes wr ON wr.id = rl.route_id
|
|
631
|
+
WHERE
|
|
632
|
+
rl.update_time > lastupdateunix and
|
|
633
|
+
rl.length > 0 AND "left"(wr.name, 2) = 'BM'::text AND NOT (EXISTS ( SELECT 1
|
|
634
|
+
FROM analytic.barrande_black_list_route bl
|
|
635
|
+
WHERE bl.route_id = rl.route_id))
|
|
636
|
+
GROUP BY wr.name, (to_timestamp((rl.update_time / 1000)::double precision)::date), (date_part('hour'::text, to_timestamp((rl.update_time / 1000)::double precision)))
|
|
637
|
+
ON CONFLICT (name,datum,hodina,cas_interval)
|
|
638
|
+
DO update
|
|
639
|
+
SET avg_time = EXCLUDED.avg_time,
|
|
640
|
+
avg_speed = EXCLUDED.avg_speed;
|
|
641
|
+
|
|
642
|
+
|
|
643
|
+
insert into analytic.barrande_data_all
|
|
644
|
+
WITH
|
|
645
|
+
v_barrande_route_hour as (
|
|
646
|
+
SELECT p.name,
|
|
647
|
+
p.datum,
|
|
648
|
+
p.hodina,
|
|
649
|
+
p.cas_interval,
|
|
650
|
+
p.avg_time,
|
|
651
|
+
p.avg_speed,
|
|
652
|
+
n.avg_time AS normal_avg_time,
|
|
653
|
+
n.avg_speed AS normal_avg_speed
|
|
654
|
+
FROM analytic.barrande_route_hour_core p
|
|
655
|
+
LEFT JOIN analytic.mv_barrande_normal n ON n.name = p.name AND p.hodina = n.hodina
|
|
656
|
+
where datum > lastupdatetimestamp
|
|
657
|
+
),
|
|
658
|
+
-- konec v_barrande_route_hour
|
|
659
|
+
v_barrande_union_time_interval as (
|
|
660
|
+
WITH hodiny AS (
|
|
661
|
+
SELECT brh.name,
|
|
662
|
+
brh.datum,
|
|
663
|
+
brh.hodina,
|
|
664
|
+
brh.cas_interval,
|
|
665
|
+
brh.avg_time,
|
|
666
|
+
brh.avg_speed,
|
|
667
|
+
brh.normal_avg_time,
|
|
668
|
+
brh.normal_avg_speed
|
|
669
|
+
FROM v_barrande_route_hour brh
|
|
670
|
+
WHERE brh.datum < CURRENT_DATE OR brh.hodina < date_part('hour'::text, now())
|
|
671
|
+
), den AS (
|
|
672
|
+
SELECT hodiny.name,
|
|
673
|
+
hodiny.datum,
|
|
674
|
+
'0 - 24h'::text AS cas_interval,
|
|
675
|
+
round(avg(hodiny.avg_time), 2) AS avg_time,
|
|
676
|
+
round(avg(hodiny.avg_speed), 2) AS avg_speed,
|
|
677
|
+
round(avg(hodiny.normal_avg_time), 2) AS normal_avg_time,
|
|
678
|
+
round(avg(hodiny.normal_avg_speed), 2) AS normal_avg_speed
|
|
679
|
+
FROM hodiny
|
|
680
|
+
WHERE hodiny.datum < CURRENT_DATE
|
|
681
|
+
GROUP BY hodiny.name, hodiny.datum
|
|
682
|
+
), h15_18 AS (
|
|
683
|
+
SELECT hodiny.name,
|
|
684
|
+
hodiny.datum,
|
|
685
|
+
'15 -18'::text AS cas_interval,
|
|
686
|
+
round(avg(hodiny.avg_time), 2) AS avg_time,
|
|
687
|
+
round(avg(hodiny.avg_speed), 2) AS avg_speed,
|
|
688
|
+
round(avg(hodiny.normal_avg_time), 2) AS normal_avg_time,
|
|
689
|
+
round(avg(hodiny.normal_avg_speed), 2) AS normal_avg_speed
|
|
690
|
+
FROM hodiny
|
|
691
|
+
WHERE hodiny.hodina >= 15::double precision AND hodiny.hodina <= 17::double precision AND (hodiny.datum < CURRENT_DATE OR hodiny.hodina > 17::double precision)
|
|
692
|
+
GROUP BY hodiny.name, hodiny.datum
|
|
693
|
+
), h22_6 AS (
|
|
694
|
+
SELECT hodiny.name,
|
|
695
|
+
hodiny.datum,
|
|
696
|
+
'22 - 06'::text AS cas_interval,
|
|
697
|
+
round(avg(hodiny.avg_time), 2) AS avg_time,
|
|
698
|
+
round(avg(hodiny.avg_speed), 2) AS avg_speed,
|
|
699
|
+
round(avg(hodiny.normal_avg_time), 2) AS normal_avg_time,
|
|
700
|
+
round(avg(hodiny.normal_avg_speed), 2) AS normal_avg_speed
|
|
701
|
+
FROM hodiny
|
|
702
|
+
WHERE NOT (hodiny.hodina >= 6::double precision AND hodiny.hodina <= 21::double precision) AND hodiny.datum < CURRENT_DATE
|
|
703
|
+
GROUP BY hodiny.name, hodiny.datum
|
|
704
|
+
), h6_22 AS (
|
|
705
|
+
SELECT hodiny.name,
|
|
706
|
+
hodiny.datum,
|
|
707
|
+
'06 - 22'::text AS cas_interval,
|
|
708
|
+
round(avg(hodiny.avg_time), 2) AS avg_time,
|
|
709
|
+
round(avg(hodiny.avg_speed), 2) AS avg_speed,
|
|
710
|
+
round(avg(hodiny.normal_avg_time), 2) AS normal_avg_time,
|
|
711
|
+
round(avg(hodiny.normal_avg_speed), 2) AS normal_avg_speed
|
|
712
|
+
FROM hodiny
|
|
713
|
+
WHERE hodiny.hodina >= 6::double precision AND hodiny.hodina <= 21::double precision AND (hodiny.datum < CURRENT_DATE OR hodiny.hodina > 21::double precision)
|
|
714
|
+
GROUP BY hodiny.name, hodiny.datum
|
|
715
|
+
), h7_10 AS (
|
|
716
|
+
SELECT hodiny.name,
|
|
717
|
+
hodiny.datum,
|
|
718
|
+
'07 - 10'::text AS cas_interval,
|
|
719
|
+
round(avg(hodiny.avg_time), 2) AS avg_time,
|
|
720
|
+
round(avg(hodiny.avg_speed), 2) AS avg_speed,
|
|
721
|
+
round(avg(hodiny.normal_avg_time), 2) AS normal_avg_time,
|
|
722
|
+
round(avg(hodiny.normal_avg_speed), 2) AS normal_avg_speed
|
|
723
|
+
FROM hodiny
|
|
724
|
+
WHERE hodiny.hodina >= 7::double precision AND hodiny.hodina <= 9::double precision AND (hodiny.datum < CURRENT_DATE OR hodiny.hodina > 10::double precision)
|
|
725
|
+
GROUP BY hodiny.name, hodiny.datum
|
|
726
|
+
), h7_11_15_19 AS (
|
|
727
|
+
SELECT hodiny.name,
|
|
728
|
+
hodiny.datum,
|
|
729
|
+
'07 - 11, 15 - 19'::text AS cas_interval,
|
|
730
|
+
round(avg(hodiny.avg_time), 2) AS avg_time,
|
|
731
|
+
round(avg(hodiny.avg_speed), 2) AS avg_speed,
|
|
732
|
+
round(avg(hodiny.normal_avg_time), 2) AS normal_avg_time,
|
|
733
|
+
round(avg(hodiny.normal_avg_speed), 2) AS normal_avg_speed
|
|
734
|
+
FROM hodiny
|
|
735
|
+
WHERE (hodiny.hodina >= 7::double precision AND hodiny.hodina <= 10::double precision OR hodiny.hodina >= 15::double precision AND hodiny.hodina <= 18::double precision) AND (hodiny.datum < CURRENT_DATE OR hodiny.hodina > 18::double precision)
|
|
736
|
+
GROUP BY hodiny.name, hodiny.datum
|
|
737
|
+
)
|
|
738
|
+
SELECT hodiny.name,
|
|
739
|
+
hodiny.datum,
|
|
740
|
+
hodiny.cas_interval,
|
|
741
|
+
hodiny.avg_time,
|
|
742
|
+
hodiny.avg_speed,
|
|
743
|
+
hodiny.normal_avg_time,
|
|
744
|
+
hodiny.normal_avg_speed
|
|
745
|
+
FROM hodiny
|
|
746
|
+
UNION ALL
|
|
747
|
+
SELECT den.name,
|
|
748
|
+
den.datum,
|
|
749
|
+
den.cas_interval,
|
|
750
|
+
den.avg_time,
|
|
751
|
+
den.avg_speed,
|
|
752
|
+
den.normal_avg_time,
|
|
753
|
+
den.normal_avg_speed
|
|
754
|
+
FROM den
|
|
755
|
+
UNION ALL
|
|
756
|
+
SELECT h15_18.name,
|
|
757
|
+
h15_18.datum,
|
|
758
|
+
h15_18.cas_interval,
|
|
759
|
+
h15_18.avg_time,
|
|
760
|
+
h15_18.avg_speed,
|
|
761
|
+
h15_18.normal_avg_time,
|
|
762
|
+
h15_18.normal_avg_speed
|
|
763
|
+
FROM h15_18
|
|
764
|
+
UNION ALL
|
|
765
|
+
SELECT h22_6.name,
|
|
766
|
+
h22_6.datum,
|
|
767
|
+
h22_6.cas_interval,
|
|
768
|
+
h22_6.avg_time,
|
|
769
|
+
h22_6.avg_speed,
|
|
770
|
+
h22_6.normal_avg_time,
|
|
771
|
+
h22_6.normal_avg_speed
|
|
772
|
+
FROM h22_6
|
|
773
|
+
UNION ALL
|
|
774
|
+
SELECT h6_22.name,
|
|
775
|
+
h6_22.datum,
|
|
776
|
+
h6_22.cas_interval,
|
|
777
|
+
h6_22.avg_time,
|
|
778
|
+
h6_22.avg_speed,
|
|
779
|
+
h6_22.normal_avg_time,
|
|
780
|
+
h6_22.normal_avg_speed
|
|
781
|
+
FROM h6_22
|
|
782
|
+
UNION ALL
|
|
783
|
+
SELECT h7_10.name,
|
|
784
|
+
h7_10.datum,
|
|
785
|
+
h7_10.cas_interval,
|
|
786
|
+
h7_10.avg_time,
|
|
787
|
+
h7_10.avg_speed,
|
|
788
|
+
h7_10.normal_avg_time,
|
|
789
|
+
h7_10.normal_avg_speed
|
|
790
|
+
FROM h7_10
|
|
791
|
+
UNION ALL
|
|
792
|
+
SELECT h7_11_15_19.name,
|
|
793
|
+
h7_11_15_19.datum,
|
|
794
|
+
h7_11_15_19.cas_interval,
|
|
795
|
+
h7_11_15_19.avg_time,
|
|
796
|
+
h7_11_15_19.avg_speed,
|
|
797
|
+
h7_11_15_19.normal_avg_time,
|
|
798
|
+
h7_11_15_19.normal_avg_speed
|
|
799
|
+
FROM h7_11_15_19
|
|
800
|
+
),
|
|
801
|
+
-----------------------
|
|
802
|
+
data1 AS (
|
|
803
|
+
SELECT
|
|
804
|
+
trasy.name,
|
|
805
|
+
trasy.name_trasa,
|
|
806
|
+
trasy.name_usek,
|
|
807
|
+
CASE
|
|
808
|
+
WHEN trasy.is_opacny_smer THEN 'Zpět'::text
|
|
809
|
+
ELSE 'Tam'::text
|
|
810
|
+
END AS smer,
|
|
811
|
+
vbu.datum,
|
|
812
|
+
vbu.cas_interval,
|
|
813
|
+
vbu.avg_time,
|
|
814
|
+
vbu.avg_speed,
|
|
815
|
+
vbu.normal_avg_time,
|
|
816
|
+
vbu.normal_avg_speed
|
|
817
|
+
FROM v_barrande_union_time_interval vbu
|
|
818
|
+
JOIN analytic.v_barrande_route trasy ON trasy.name = vbu.name
|
|
819
|
+
),
|
|
820
|
+
data2 AS (
|
|
821
|
+
SELECT
|
|
822
|
+
data1.name_trasa,
|
|
823
|
+
data1.name_usek,
|
|
824
|
+
'Oba'::text AS smer,
|
|
825
|
+
data1.datum,
|
|
826
|
+
data1.cas_interval,
|
|
827
|
+
sum(data1.avg_time) AS avg_time,
|
|
828
|
+
avg(data1.avg_speed) AS avg_speed,
|
|
829
|
+
sum(data1.normal_avg_time) AS normal_avg_time,
|
|
830
|
+
avg(data1.normal_avg_speed) AS normal_avg_speed
|
|
831
|
+
FROM data1
|
|
832
|
+
GROUP BY data1.name_trasa, data1.name_usek, 'Oba'::text, data1.datum, data1.cas_interval
|
|
833
|
+
)
|
|
834
|
+
SELECT data1.name,
|
|
835
|
+
data1.name_trasa,
|
|
836
|
+
data1.name_usek,
|
|
837
|
+
data1.smer,
|
|
838
|
+
data1.datum,
|
|
839
|
+
data1.cas_interval,
|
|
840
|
+
data1.avg_time,
|
|
841
|
+
data1.avg_speed,
|
|
842
|
+
data1.normal_avg_time,
|
|
843
|
+
data1.normal_avg_speed
|
|
844
|
+
FROM data1
|
|
845
|
+
UNION
|
|
846
|
+
SELECT vbt.name,
|
|
847
|
+
data2.name_trasa,
|
|
848
|
+
data2.name_usek,
|
|
849
|
+
data2.smer,
|
|
850
|
+
data2.datum,
|
|
851
|
+
data2.cas_interval,
|
|
852
|
+
data2.avg_time,
|
|
853
|
+
data2.avg_speed,
|
|
854
|
+
data2.normal_avg_time,
|
|
855
|
+
data2.normal_avg_speed
|
|
856
|
+
FROM data2
|
|
857
|
+
JOIN analytic.v_barrande_route vbt ON vbt.name_trasa = data2.name_trasa AND vbt.name_usek = data2.name_usek AND NOT vbt.is_opacny_smer
|
|
858
|
+
on conflict (name,name_trasa,name_usek,smer,datum,cas_interval)
|
|
859
|
+
do update
|
|
860
|
+
SET avg_time = EXCLUDED.avg_time,
|
|
861
|
+
avg_speed = EXCLUDED.avg_speed,
|
|
862
|
+
normal_avg_time = EXCLUDED.normal_avg_time,
|
|
863
|
+
normal_avg_speed = EXCLUDED.normal_avg_speed;
|
|
864
|
+
end;
|
|
865
|
+
$procedure$
|
|
866
|
+
;
|