Мое время выдает данные в таблицу SQL с одним столбцом для ввода и вывода временных меток и имя сотрудника в другом столбце. Я хотел бы иметь возможность рассчитать ежедневные часы для каждого сотрудника с помощью SQL-запроса из сценария Google Таблиц.Рассчитать продолжительность между отметками времени в одном столбце
Вот что у меня есть:
ID Name Timestamp
1023 Emily Bromley 2016-08-15 9:00:00
1023 Emily Bromley 2016-08-15 17:00:00
1023 Emily Bromley 2016-08-16 9:00:00
1023 Emily Bromley 2016-08-16 17:00:00
1023 Emily Bromley 2016-08-17 9:00:00
1023 Emily Bromley 2016-08-17 15:30:00
1023 Emily Bromley 2016-08-22 9:00:00
1023 Emily Bromley 2016-08-22 16:00:00
1023 Emily Bromley 2016-08-23 8:55:00
1023 Emily Bromley 2016-08-23 16:58:00
1023 Emily Bromley 2016-08-24 8:20:00
1023 Emily Bromley 2016-08-24 16:59:00
1023 Emily Bromley 2016-08-25 9:52:00
1023 Emily Bromley 2016-08-25 16:59:00
1023 Emily Bromley 2016-08-29 9:11:00
1023 Emily Bromley 2016-08-29 16:57:00
То, что я хотел бы сделать, это группа даты вместе и найти длительность временных меток:
ID Name Day and Duration
1023 Emily Bromley 2016-08-15 8
1023 Emily Bromley 2016-08-16 8
1023 Emily Bromley 2016-08-17 6.5
1023 Emily Bromley 2016-08-22 7
1023 Emily Bromley 2016-08-23 8.1
1023 Emily Bromley 2016-08-24 8.5
1023 Emily Bromley 2016-08-25 8.1
1023 Emily Bromley 2016-08-29 8.2
Ive пытался с помощью MIN() и MAX() с GROUP BY, но они не группируют дни вместе, вот мой последний SQL-запрос:
SELECT access_user.user_id,
access_user.first_name + ' ' + access_user.last_name,
MIN(user_time_log.log_time),
MAX(user_time_log.log_time)
FROM access_user
INNER JOIN user_time_log
on access_user.user_id=user_time_log.user_id
GROUP BY access_user.user_id,
access_user.first_name + ' ' + access_user.last_name
Какой выходы:
1023 Emily Bromley 2016-08-15 9:00:00 2017-02-17 13:01:00
Есть, конечно, другие работники, но каждый человек только один раз в день. Некоторое время я искал Google, но не нашел ничего похожего на мою проблему. Буду признателен за любую оказанную помощь.
Прежде всего, какие СУБД вы используете? Если он поддерживает функции окон, синтаксис немного отличается между платформой. Если это не так, существует общий, но обычно менее эффективный метод решения этих проблем. –
Теперь ... Причина, по которой вы получаете только 1 строку, - это то, что вы не рассматриваете даты в своей группе GROUP BY. Таким образом, все для каждого 'user_id' сворачивается в одну строку. Вам необходимо сгруппировать с помощью расчета, определяющего дату с полей даты и времени. Например. На сервере Sql вы должны использовать следующие методы: http://stackoverflow.com/q/1843395/224704 –