Good morning!
To begin with, I think that what you need is the HOUR()
of MySQL function, which gives you the time. Even if you want to do it in half-hour slots you can use the MINUTE()
function to get the minutes of a timestamp.
Once with this you can make the query by adding the records that meet the IFs, so you will have the sum per time slot.
For example, for hours of whole hours you would have something like this:
SELECT
SUM(if(HOUR(T.TIME_CONTACT) = 0, 1, 0)) AS FRANJA_0,
SUM(if(HOUR(T.TIME_CONTACT) = 1, 1, 0)) AS FRANJA_1,
SUM(if(HOUR(T.TIME_CONTACT) = 2, 1, 0)) AS FRANJA_2,
SUM(if(HOUR(T.TIME_CONTACT) = 3, 1, 0)) AS FRANJA_3,
SUM(if(HOUR(T.TIME_CONTACT) = 4, 1, 0)) AS FRANJA_4,
SUM(if(HOUR(T.TIME_CONTACT) = 5, 1, 0)) AS FRANJA_5,
SUM(if(HOUR(T.TIME_CONTACT) = 6, 1, 0)) AS FRANJA_6,
SUM(if(HOUR(T.TIME_CONTACT) = 7, 1, 0)) AS FRANJA_7,
SUM(if(HOUR(T.TIME_CONTACT) = 8, 1, 0)) AS FRANJA_8,
SUM(if(HOUR(T.TIME_CONTACT) = 9, 1, 0)) AS FRANJA_9,
SUM(if(HOUR(T.TIME_CONTACT) = 10, 1, 0)) AS FRANJA_10,
SUM(if(HOUR(T.TIME_CONTACT) = 11, 1, 0)) AS FRANJA_11,
SUM(if(HOUR(T.TIME_CONTACT) = 12, 1, 0)) AS FRANJA_12,
SUM(if(HOUR(T.TIME_CONTACT) = 13, 1, 0)) AS FRANJA_13,
SUM(if(HOUR(T.TIME_CONTACT) = 14, 1, 0)) AS FRANJA_14,
SUM(if(HOUR(T.TIME_CONTACT) = 15, 1, 0)) AS FRANJA_15,
SUM(if(HOUR(T.TIME_CONTACT) = 16, 1, 0)) AS FRANJA_16,
SUM(if(HOUR(T.TIME_CONTACT) = 17, 1, 0)) AS FRANJA_17,
SUM(if(HOUR(T.TIME_CONTACT) = 18, 1, 0)) AS FRANJA_18,
SUM(if(HOUR(T.TIME_CONTACT) = 19, 1, 0)) AS FRANJA_19,
SUM(if(HOUR(T.TIME_CONTACT) = 20, 1, 0)) AS FRANJA_20,
SUM(if(HOUR(T.TIME_CONTACT) = 21, 1, 0)) AS FRANJA_21,
SUM(if(HOUR(T.TIME_CONTACT) = 22, 1, 0)) AS FRANJA_22,
SUM(if(HOUR(T.TIME_CONTACT) = 23, 1, 0)) AS FRANJA_23
FROM DIFERIDAS T;
Well and to finish curling the curl this would be the query to see the calls by half hour strips from 8.00 to 18.00:
SELECT
SUM(if(HOUR(T.TIME_CONTACT) = 8 and MINUTE(T.TIME_CONTACT) >= 0 and MINUTE(T.TIME_CONTACT) <= 29, 1, 0)) AS FRANJA_8_00,
SUM(if(HOUR(T.TIME_CONTACT) = 8 and MINUTE(T.TIME_CONTACT) >= 30 and MINUTE(T.TIME_CONTACT) <= 59, 1, 0)) AS FRANJA_8_30,
SUM(if(HOUR(T.TIME_CONTACT) = 9 and MINUTE(T.TIME_CONTACT) >= 0 and MINUTE(T.TIME_CONTACT) <= 29, 1, 0)) AS FRANJA_9_00,
SUM(if(HOUR(T.TIME_CONTACT) = 9 and MINUTE(T.TIME_CONTACT) >= 30 and MINUTE(T.TIME_CONTACT) <= 59, 1, 0)) AS FRANJA_9_30,
SUM(if(HOUR(T.TIME_CONTACT) = 10 and MINUTE(T.TIME_CONTACT) >= 0 and MINUTE(T.TIME_CONTACT) <= 29, 1, 0)) AS FRANJA_10_00,
SUM(if(HOUR(T.TIME_CONTACT) = 10 and MINUTE(T.TIME_CONTACT) >= 30 and MINUTE(T.TIME_CONTACT) <= 59, 1, 0)) AS FRANJA_10_30,
SUM(if(HOUR(T.TIME_CONTACT) = 11 and MINUTE(T.TIME_CONTACT) >= 0 and MINUTE(T.TIME_CONTACT) <= 29, 1, 0)) AS FRANJA_11_00,
SUM(if(HOUR(T.TIME_CONTACT) = 11 and MINUTE(T.TIME_CONTACT) >= 30 and MINUTE(T.TIME_CONTACT) <= 59, 1, 0)) AS FRANJA_11_30,
SUM(if(HOUR(T.TIME_CONTACT) = 12 and MINUTE(T.TIME_CONTACT) >= 0 and MINUTE(T.TIME_CONTACT) <= 29, 1, 0)) AS FRANJA_12_00,
SUM(if(HOUR(T.TIME_CONTACT) = 12 and MINUTE(T.TIME_CONTACT) >= 30 and MINUTE(T.TIME_CONTACT) <= 59, 1, 0)) AS FRANJA_12_30,
SUM(if(HOUR(T.TIME_CONTACT) = 13 and MINUTE(T.TIME_CONTACT) >= 0 and MINUTE(T.TIME_CONTACT) <= 29, 1, 0)) AS FRANJA_13_00,
SUM(if(HOUR(T.TIME_CONTACT) = 13 and MINUTE(T.TIME_CONTACT) >= 30 and MINUTE(T.TIME_CONTACT) <= 59, 1, 0)) AS FRANJA_13_30,
SUM(if(HOUR(T.TIME_CONTACT) = 14 and MINUTE(T.TIME_CONTACT) >= 0 and MINUTE(T.TIME_CONTACT) <= 29, 1, 0)) AS FRANJA_14_00,
SUM(if(HOUR(T.TIME_CONTACT) = 14 and MINUTE(T.TIME_CONTACT) >= 30 and MINUTE(T.TIME_CONTACT) <= 59, 1, 0)) AS FRANJA_14_30,
SUM(if(HOUR(T.TIME_CONTACT) = 15 and MINUTE(T.TIME_CONTACT) >= 0 and MINUTE(T.TIME_CONTACT) <= 29, 1, 0)) AS FRANJA_15_00,
SUM(if(HOUR(T.TIME_CONTACT) = 15 and MINUTE(T.TIME_CONTACT) >= 30 and MINUTE(T.TIME_CONTACT) <= 59, 1, 0)) AS FRANJA_15_30,
SUM(if(HOUR(T.TIME_CONTACT) = 16 and MINUTE(T.TIME_CONTACT) >= 0 and MINUTE(T.TIME_CONTACT) <= 29, 1, 0)) AS FRANJA_16_00,
SUM(if(HOUR(T.TIME_CONTACT) = 16 and MINUTE(T.TIME_CONTACT) >= 30 and MINUTE(T.TIME_CONTACT) <= 59, 1, 0)) AS FRANJA_16_30,
SUM(if(HOUR(T.TIME_CONTACT) = 17 and MINUTE(T.TIME_CONTACT) >= 0 and MINUTE(T.TIME_CONTACT) <= 29, 1, 0)) AS FRANJA_17_00,
SUM(if(HOUR(T.TIME_CONTACT) = 17 and MINUTE(T.TIME_CONTACT) >= 30 and MINUTE(T.TIME_CONTACT) <= 59, 1, 0)) AS FRANJA_17_30
FROM DIFERIDAS T;