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;