Updated Dumper cycles statistics

This commit is contained in:
gigi.mamaladze 2025-10-19 21:41:13 +04:00
parent bb0e64286e
commit 6c7e7b860a
5 changed files with 237 additions and 823 deletions

View File

@ -18,11 +18,11 @@ labels AS (
) )
SELECT SELECT
l.Dumper, l.Dumper,
CASE WHEN l.Dumper='ULC1' THEN ROUND(c.ULC1 / t.Dump_Total * 100, 2) END AS ULC1, CASE WHEN l.Dumper='ULC1' THEN c.ULC1 END AS ULC1,
CASE WHEN l.Dumper='ULC2' THEN ROUND(c.ULC2 / t.Dump_Total * 100, 2) END AS ULC2, CASE WHEN l.Dumper='ULC2' THEN c.ULC2 END AS ULC2,
CASE WHEN l.Dumper='ULC3' THEN ROUND(c.ULC3 / t.Dump_Total * 100, 2) END AS ULC3, CASE WHEN l.Dumper='ULC3' THEN c.ULC3 END AS ULC3,
CASE WHEN l.Dumper='ULC4' THEN ROUND(c.ULC4 / t.Dump_Total * 100, 2) END AS ULC4, CASE WHEN l.Dumper='ULC4' THEN c.ULC4 END AS ULC4,
100 AS Dump_Count t.Dump_Total AS Dump_Count
FROM labels l FROM labels l
CROSS JOIN counts c CROSS JOIN counts c
CROSS JOIN totals t; CROSS JOIN totals t;

View File

@ -18,7 +18,7 @@
"cacheEnabled": false, "cacheEnabled": false,
"database": "MariaDB", "database": "MariaDB",
"fallbackEnabled": false, "fallbackEnabled": false,
"lastModificationSignature": "9c7eede958fa24dd74eaca00ba3838a7b23c70ac1e259ebd46b749c94df1c01f", "lastModificationSignature": "5b77c57b75c27228c1031823519a0979dc5f0d9fbf4d011228d2c6d259d95109",
"permissions": [ "permissions": [
{ {
"zone": "", "zone": "",
@ -27,7 +27,7 @@
], ],
"lastModification": { "lastModification": {
"actor": "admin", "actor": "admin",
"timestamp": "2025-10-18T22:42:07Z" "timestamp": "2025-10-19T17:25:44Z"
}, },
"parameters": [ "parameters": [
{ {

View File

@ -1,16 +1,62 @@
SELECT NOW() AS time, 1 AS name, CAST(COALESCE(SUM(ulc1 = 1), 0) AS SIGNED) AS count /* One row per hour in [:starttime, :endtime], MariaDB-old (no CTE/recursion) */
FROM dumper_cycles SELECT
WHERE t_stamp BETWEEN :starttime AND :endtime CAST(UNIX_TIMESTAMP(h.hour_ts) * 1000 AS UNSIGNED) AS time, -- epoch ms at hour start
UNION ALL COALESCE(SUM(dc.ulc1 = 1), 0) AS ULC1,
SELECT NOW() + INTERVAL 1 SECOND , 2 , CAST(COALESCE(SUM(ulc2 = 1), 0) AS SIGNED) COALESCE(SUM(dc.ulc2 = 1), 0) AS ULC2,
FROM dumper_cycles COALESCE(SUM(dc.ulc3 = 1), 0) AS ULC3,
WHERE t_stamp BETWEEN :starttime AND :endtime COALESCE(SUM(dc.ulc4 = 1), 0) AS ULC4
UNION ALL FROM
SELECT NOW() + INTERVAL 2 SECOND , 3 , CAST(COALESCE(SUM(ulc3 = 1), 0) AS SIGNED) (
FROM dumper_cycles /* Generate exactly N+1 hour buckets from floor(:starttime) to floor(:endtime) */
WHERE t_stamp BETWEEN :starttime AND :endtime SELECT sf.start_floor + INTERVAL nums.n HOUR AS hour_ts
UNION ALL FROM
SELECT NOW() + INTERVAL 3 SECOND , 4 , CAST(COALESCE(SUM(ulc4 = 1), 0) AS SIGNED) (
FROM dumper_cycles SELECT
WHERE t_stamp BETWEEN :starttime AND :endtime TIMESTAMP(DATE_FORMAT(:starttime, '%Y-%m-%d %H:00:00')) AS start_floor,
ORDER BY name; TIMESTAMP(DATE_FORMAT(:endtime, '%Y-%m-%d %H:00:00')) AS end_floor
) AS sf
JOIN
(
/* extend list if your window can exceed 168 hours */
SELECT 0 AS n UNION ALL SELECT 1 UNION ALL SELECT 2 UNION ALL SELECT 3 UNION ALL SELECT 4 UNION ALL
SELECT 5 UNION ALL SELECT 6 UNION ALL SELECT 7 UNION ALL SELECT 8 UNION ALL SELECT 9 UNION ALL
SELECT 10 UNION ALL SELECT 11 UNION ALL SELECT 12 UNION ALL SELECT 13 UNION ALL SELECT 14 UNION ALL
SELECT 15 UNION ALL SELECT 16 UNION ALL SELECT 17 UNION ALL SELECT 18 UNION ALL SELECT 19 UNION ALL
SELECT 20 UNION ALL SELECT 21 UNION ALL SELECT 22 UNION ALL SELECT 23 UNION ALL SELECT 24 UNION ALL
SELECT 25 UNION ALL SELECT 26 UNION ALL SELECT 27 UNION ALL SELECT 28 UNION ALL SELECT 29 UNION ALL
SELECT 30 UNION ALL SELECT 31 UNION ALL SELECT 32 UNION ALL SELECT 33 UNION ALL SELECT 34 UNION ALL
SELECT 35 UNION ALL SELECT 36 UNION ALL SELECT 37 UNION ALL SELECT 38 UNION ALL SELECT 39 UNION ALL
SELECT 40 UNION ALL SELECT 41 UNION ALL SELECT 42 UNION ALL SELECT 43 UNION ALL SELECT 44 UNION ALL
SELECT 45 UNION ALL SELECT 46 UNION ALL SELECT 47 UNION ALL SELECT 48 UNION ALL SELECT 49 UNION ALL
SELECT 50 UNION ALL SELECT 51 UNION ALL SELECT 52 UNION ALL SELECT 53 UNION ALL SELECT 54 UNION ALL
SELECT 55 UNION ALL SELECT 56 UNION ALL SELECT 57 UNION ALL SELECT 58 UNION ALL SELECT 59 UNION ALL
SELECT 60 UNION ALL SELECT 61 UNION ALL SELECT 62 UNION ALL SELECT 63 UNION ALL SELECT 64 UNION ALL
SELECT 65 UNION ALL SELECT 66 UNION ALL SELECT 67 UNION ALL SELECT 68 UNION ALL SELECT 69 UNION ALL
SELECT 70 UNION ALL SELECT 71 UNION ALL SELECT 72 UNION ALL SELECT 73 UNION ALL SELECT 74 UNION ALL
SELECT 75 UNION ALL SELECT 76 UNION ALL SELECT 77 UNION ALL SELECT 78 UNION ALL SELECT 79 UNION ALL
SELECT 80 UNION ALL SELECT 81 UNION ALL SELECT 82 UNION ALL SELECT 83 UNION ALL SELECT 84 UNION ALL
SELECT 85 UNION ALL SELECT 86 UNION ALL SELECT 87 UNION ALL SELECT 88 UNION ALL SELECT 89 UNION ALL
SELECT 90 UNION ALL SELECT 91 UNION ALL SELECT 92 UNION ALL SELECT 93 UNION ALL SELECT 94 UNION ALL
SELECT 95 UNION ALL SELECT 96 UNION ALL SELECT 97 UNION ALL SELECT 98 UNION ALL SELECT 99 UNION ALL
SELECT 100 UNION ALL SELECT 101 UNION ALL SELECT 102 UNION ALL SELECT 103 UNION ALL SELECT 104 UNION ALL
SELECT 105 UNION ALL SELECT 106 UNION ALL SELECT 107 UNION ALL SELECT 108 UNION ALL SELECT 109 UNION ALL
SELECT 110 UNION ALL SELECT 111 UNION ALL SELECT 112 UNION ALL SELECT 113 UNION ALL SELECT 114 UNION ALL
SELECT 115 UNION ALL SELECT 116 UNION ALL SELECT 117 UNION ALL SELECT 118 UNION ALL SELECT 119 UNION ALL
SELECT 120 UNION ALL SELECT 121 UNION ALL SELECT 122 UNION ALL SELECT 123 UNION ALL SELECT 124 UNION ALL
SELECT 125 UNION ALL SELECT 126 UNION ALL SELECT 127 UNION ALL SELECT 128 UNION ALL SELECT 129 UNION ALL
SELECT 130 UNION ALL SELECT 131 UNION ALL SELECT 132 UNION ALL SELECT 133 UNION ALL SELECT 134 UNION ALL
SELECT 135 UNION ALL SELECT 136 UNION ALL SELECT 137 UNION ALL SELECT 138 UNION ALL SELECT 139 UNION ALL
SELECT 140 UNION ALL SELECT 141 UNION ALL SELECT 142 UNION ALL SELECT 143 UNION ALL SELECT 144 UNION ALL
SELECT 145 UNION ALL SELECT 146 UNION ALL SELECT 147 UNION ALL SELECT 148 UNION ALL SELECT 149 UNION ALL
SELECT 150 UNION ALL SELECT 151 UNION ALL SELECT 152 UNION ALL SELECT 153 UNION ALL SELECT 154 UNION ALL
SELECT 155 UNION ALL SELECT 156 UNION ALL SELECT 157 UNION ALL SELECT 158 UNION ALL SELECT 159 UNION ALL
SELECT 160 UNION ALL SELECT 161 UNION ALL SELECT 162 UNION ALL SELECT 163 UNION ALL SELECT 164 UNION ALL
SELECT 165 UNION ALL SELECT 166 UNION ALL SELECT 167
) AS nums
ON nums.n <= TIMESTAMPDIFF(HOUR, sf.start_floor, sf.end_floor)
) AS h
LEFT JOIN dumper_cycles dc
ON dc.t_stamp >= h.hour_ts
AND dc.t_stamp < h.hour_ts + INTERVAL 1 HOUR
GROUP BY h.hour_ts
ORDER BY h.hour_ts;

View File

@ -18,7 +18,7 @@
"cacheEnabled": false, "cacheEnabled": false,
"database": "MariaDB", "database": "MariaDB",
"fallbackEnabled": false, "fallbackEnabled": false,
"lastModificationSignature": "4addcac1cda8fc044de4f3bb9aed74d86f9f19406b2bdce868963d49635ab266", "lastModificationSignature": "d454ce1a9aca40c387f2a302b05113880a32825fa474048962bb8386cc73882a",
"permissions": [ "permissions": [
{ {
"zone": "", "zone": "",
@ -27,7 +27,7 @@
], ],
"lastModification": { "lastModification": {
"actor": "admin", "actor": "admin",
"timestamp": "2025-10-18T23:43:21Z" "timestamp": "2025-10-19T15:58:12Z"
}, },
"parameters": [ "parameters": [
{ {