Существует более простой (и, возможно, более гибкий) способ ответить на ваш вопрос.Ваша вторичная таблица (результаты) будет экспоненциально расширяться в зависимости от количества столбцов для каждой комнаты и каждого пользователя, о котором вам нужно будет сообщать, и, на мой взгляд, будет трудно управлять.Кроме того, используя решение Гордона, вам придется переписывать ваш запрос каждый раз при добавлении пользователя или комнаты.
Было бы намного легче поддерживать, если бы вы суммировали данные с использованием стандартных функций суммирования, подсчета и среднего в SQLсо стандартными пунктами группировки:
SELECT user_id, location, count(location), sum(duration), avg(duration)
FROM visits
group by user_id, location
Это даст вам желаемые результаты, но в несколько ином формате:

Делая это таким образом, вы можете добавить столько комнат и пользователей, сколько пожелаете, и сводная информация всегда будет работать.Добавление столбцов даты или времени для фильтрации результатов также будет очень простым.