SQLize Online / PHPize Online

A A A
Share   Donate   Blog   Popular
Copy Format Clear
--Name- сотрудник --Day_number- порядковый номер дня недели --Min- отсутствие на рабочем месте (мин.) --Diner_flag- признак отсутствия по причине обеда --Необходимо вывести суммарное количество времени, которое сотрудник отсутствовал на рабочем месте за исключением обеденных перерывов, а также среднее время обеда. --Формат: A 420 53 create table Test_bank_1 ( Name varchar(255), Day_number int, Min int, Diner_flag varchar(255) ) insert into Test_bank_1 (Name, Day_number, Min, Diner_flag ) values ('D', 1, 15, null), ('D', 1, 20, null), ('D', 1, 63, 'Y'), ('D', 2, 55, 'Y'), ('D', 2, 20, null), ('D', 2, 15, null), ('A', 1, 0, null), ('A', 1, 60, 'Y'), ('A', 1, 5, null), ('A', 1, 10, null), ('A', 2, 20, null), ('A', 2, 45, 'Y'); -- dd select Name, SUM(CASE WHEN Diner_flag is null THEN "Min" ELSE 0 END) absent_time, SUM(CASE WHEN Diner_flag is not null THEN "Min" ELSE 0 END) dinner_time, COUNT(Diner_flag) dinners_count, AVG(CASE WHEN Diner_flag is not null THEN "Min" ELSE null END) avg_dinner_time from Test_bank_1 group by Name;
Stuck with a problem? Need help? Ask professionals on our Telegram channel!
Join the channel
Your quersion is posted.
Join our Telegram channel and get answers.
Send
Copy