у меня есть этот код ниже (работает на SQL Server 2017):
WITH selection AS (
SELECT servertimestamp
FROM eventlog
WHERE servertimestamp BETWEEN '5/29/2018' AND DATEADD(dd, +1, '6/29/2019')
AND (attributes LIKE '%N<=>PeopleIn%'))
(SELECT DATEADD(HOUR, DATEDIFF(HOUR, 0, servertimestamp) - (DATEDIFF(HOUR, 0, servertimestamp) % 2), 0) as timestamp , COUNT(servertimestamp) AS GONE_OUT
FROM selection
WHERE DATEPART(hh, servertimestamp) BETWEEN 8 AND 20
GROUP BY DATEADD(HOUR, DATEDIFF(HOUR, 0, servertimestamp) - (DATEDIFF(HOUR, 0, servertimestamp) % 2), 0))
ORDER BY timestamp
Также на скриншоте ниже показан результат выполненного кода:
То, что делает этот код, показывает, сколько людей заходило в здание каждый день. Данные сгруппированы за 2 часа.
Что я хочу сделать, так это добавить столбец, который показывает, сколько людей вышло из здания за те же временные интервалы, которые я уже использую.
Ниже я приведу пример того, что я хочу сделать:
Обратите внимание, что в 6-й строке я использую оператор LIKE ( атрибуты LIKE '% N <=> PeopleIn%' ). Это означает, что для дополнительного столбца мне придется делать аналогичные выборы, но с разницей в использовании атрибутов LIKE '% N <=> PeopleOut%' .
Могу ли я сделать это с помощью оператора UNION? Есть ли другой более очевидный или более простой способ сделать это?
Ваша помощь будет оценена по достоинству,
спасибо.