Итак, у нас есть таблица, в которой мы храним прогнозируемый уровень шума для нескольких комнат на почасовой основе наряду со временем, когда был сделан прогноз.
Но этот прогноз может меняться несколько раз в день, икогда это происходит, мы добавляем новую строку в таблицу, чтобы сохранить историю, поэтому у нас есть что-то вроде этого:
+----+----+-------+--------+------+-------+---------------------+
| room_id | reference_date | hour | noise | update_time |
+----+----+-------+--------+------+-------+---------------------+
| 1 | 2019-06-13 | 8 | 0 | 2019-06-13 07:15:23 |
| 1 | 2019-06-13 | 9 | 5 | 2019-06-13 07:15:23 |
| 2 | 2019-06-13 | 8 | 2 | 2019-06-13 07:15:23 |
| 1 | 2019-06-13 | 8 | 5 | 2019-06-13 08:15:23 |
| 1 | 2019-06-13 | 9 | 5 | 2019-06-13 08:15:23 |
+---------+--------+--------+-----+-------+---------------------+
Теперь мы хотим суммировать прогнозируемый уровень шума на весь день, но используя толькоlast update_time, else будет иметь несколько записей для одного и того же часа дня вместо одного.
Я пробовал несколько только примеров, но не смог заставить его работать с одним запросом, мы используемSQL Server 14.0.3030.27.Я мог бы сделать это в коде, но я считаю, что есть лучшее решение для этого.
Результат запроса должен быть примерно таким:
+----+----+-------+--------+------+-------+----+
| room_id | reference_date | total_daily_noise |
+----+----+-------+--------+-------------------+
| 1 | 2019-06-13 | 10 |
+---------+--------+-------+-------------------+
Можно ли сделать это с помощью одного запроса?
Заранее спасибо за помощь!