В mysql db у меня есть поле с именем time_utilize с типом времени, в котором хранятся общие затраты времени в день, а в этой таблице – записи за каждый месяц. Теперь я хочу найти общий трафик времени для пользователя в каждую неделю выбранного месяца. Я искал это, но я нашел отличный запрос, чтобы найти общее время в течение всего месяца, а именно:
SELECT Sec_to_Time(Sum(Time_to_Sec(time_utilize))) FROM attendance WHERE staff_id = 'sajid'
Теперь, кому я могу найти сумму общего времени, используемую каждую неделю месяца?
Предполагая, что таблица attendance
содержит столбец attendance_date
, приведенный ниже запрос может дать вам общее время, используемое в неделю в месяце:
SELECT WEEK(`attendance_date`) `attendance_week`, SEC_TO_TIME(SUM(TIME_TO_SEC(`time_utilize`))) `attendance_time_utilized` FROM `attendance` GROUP BY `attendance_week`;
В вышеприведенном запросе attendance_week
рассчитывается как неделя года, от 1 до 52.
Другая форма вывода может заключаться в том, чтобы показать недели как 1,2,3,4. Для этого вы можете попробовать этот запрос:
SELECT (`attendance_week` - `min_week` + 1) `att_week`, `attendance_time_utilized` FROM ( SELECT WEEK(`ATT`.`attendance_date`) `attendance_week`, SEC_TO_TIME(SUM(TIME_TO_SEC(`ATT`.`time_utilize`))) `attendance_time_utilized`, `T1`.`min_week` FROM `attendance` `ATT` INNER JOIN (SELECT MIN(WEEK(`attendance_date`)) `min_week` FROM `attendance`) T1 GROUP BY `attendance_week` ) T2;
Надейтесь, что вышеупомянутые запросы помогут вам с желаемыми результатами. Измените имена таблиц и столбцов в соответствии с вашей схемой.