42 lines
1.5 KiB
SQL
42 lines
1.5 KiB
SQL
SELECT
|
|
DATE_FORMAT(:starttime, '%Y-%m-%d %H:%i') AS StartTimestamp,
|
|
DATE_FORMAT(:endtime, '%Y-%m-%d %H:%i') AS EndTimestamp,
|
|
|
|
-- totals
|
|
COALESCE(c.U1,0) + COALESCE(c.U2,0) + COALESCE(c.U3,0) + COALESCE(c.U4,0) AS Total,
|
|
|
|
-- percentages (string with %; 0% when total = 0)
|
|
CASE
|
|
WHEN (COALESCE(c.U1,0) + COALESCE(c.U2,0) + COALESCE(c.U3,0) + COALESCE(c.U4,0)) = 0
|
|
THEN '0%'
|
|
ELSE CONCAT(ROUND(COALESCE(c.U1,0) / (COALESCE(c.U1,0)+COALESCE(c.U2,0)+COALESCE(c.U3,0)+COALESCE(c.U4,0)) * 100, 2), '%')
|
|
END AS ULC1,
|
|
|
|
CASE
|
|
WHEN (COALESCE(c.U1,0) + COALESCE(c.U2,0) + COALESCE(c.U3,0) + COALESCE(c.U4,0)) = 0
|
|
THEN '0%'
|
|
ELSE CONCAT(ROUND(COALESCE(c.U2,0) / (COALESCE(c.U1,0)+COALESCE(c.U2,0)+COALESCE(c.U3,0)+COALESCE(c.U4,0)) * 100, 2), '%')
|
|
END AS ULC2,
|
|
|
|
CASE
|
|
WHEN (COALESCE(c.U1,0) + COALESCE(c.U2,0) + COALESCE(c.U3,0) + COALESCE(c.U4,0)) = 0
|
|
THEN '0%'
|
|
ELSE CONCAT(ROUND(COALESCE(c.U3,0) / (COALESCE(c.U1,0)+COALESCE(c.U2,0)+COALESCE(c.U3,0)+COALESCE(c.U4,0)) * 100, 2), '%')
|
|
END AS ULC3,
|
|
|
|
CASE
|
|
WHEN (COALESCE(c.U1,0) + COALESCE(c.U2,0) + COALESCE(c.U3,0) + COALESCE(c.U4,0)) = 0
|
|
THEN '0%'
|
|
ELSE CONCAT(ROUND(COALESCE(c.U4,0) / (COALESCE(c.U1,0)+COALESCE(c.U2,0)+COALESCE(c.U3,0)+COALESCE(c.U4,0)) * 100, 2), '%')
|
|
END AS ULC4
|
|
|
|
FROM (
|
|
SELECT
|
|
SUM(ulc1 = 1) AS U1,
|
|
SUM(ulc2 = 1) AS U2,
|
|
SUM(ulc3 = 1) AS U3,
|
|
SUM(ulc4 = 1) AS U4
|
|
FROM dumper_cycles
|
|
WHERE t_stamp BETWEEN :starttime AND :endtime
|
|
) AS c;
|