У меня есть три стола, столы, кадры:
| StaffID | имя_персонала |
|---|---|
| 1 | Клэр Скотт |
| 2 | Зак Лоури |
проблемы:
| проблемаID | logged_time | комментарий | StaffID |
|---|---|---|---|
| 1 | 2021-02-07 18:30:00 | 1 | |
| 2 | 2019-11-19 13:56:00 | 2 | |
| 3 | 2021-02-19 18:00:00 | 2 | |
| 4 | 2019-11-19 13:50:03 | 1 |
и обновления:
| updateID | Время обновления | StaffID | проблемаID |
|---|---|---|---|
| 1 | 2021-05-17 13:32:04 | 1 | 1 |
| 2 | 2021-01-19 13:32:04 | 1 | 4 |
| 3 | 2021-11-17 13:32:04 | 1 | 1 |
| 4 | 2020-01-15 11:32:04 | 2 | 2 |
| 5 | 2022-01-10 11:32:04 | 2 | 3 |
Где каждая запись в таблице проблем может иметь несколько обновлений в обновлениях. Я хочу узнать, сколько проблем обработал каждый сотрудник, и для каждого сотрудника наименьшее количество времени, прошедшее между временем регистрации проблем и последним обновлением для этой проблемы. Код, который мне пришлось сделать, это
SELECT
updates.staffID,
COUNT(updates.staffID) as amount_processed,
MAX(updates.updatetime) - problems.loggedtime as minimum_time_taken
FROM
updates
JOIN problems ON updates.problemID = problems.problemID
GROUP BY
updates.staffID;
Но я продолжаю получать ошибку
'ERROR: column "problems.loggedtime" must appear in the GROUP BY clause or be used in an aggregate function'
и я не знаю, как это исправить. Могли бы помочь?
последнее обновление для каждой проблемы или последнее обновление когда-либо?
Отредактируйте свой вопрос и покажите желаемый результат. Непонятно, о чем вы просите.
@GordonLinoff обновил его сейчас! Я понял, что это было неясно, только после прочтения его, думаю, я объяснил, что я пытаюсь сделать лучше сейчас


Попробуйте:
MAX(updates.updatetime) - MIN(problems.loggedtime) as minimum_time_taken