Я использую приведенный ниже запрос в SQL Server, чтобы найти distinct
количество входов в систему, выполненных за последние 7 дней (исключая сегодняшнюю дату):
SELECT TOP (7) CONVERT(date, LoginTime) AS ActivityDate, COUNT(DISTINCT LoginID) AS UserCount
FROM Login
WHERE CONVERT(date, LoginTime) < CONVERT(date, GETDATE())
GROUP BY CONVERT(date, LoginTime)
ORDER BY ActivityDate DESC;
Он генерирует следующий вывод:
ActivityDate | UserCount
----------------------
2019-02-21 | 2
2019-02-20 | 3
2019-02-19 | 2
2019-02-15 | 2
2019-02-14 | 1
2019-02-13 | 2
2019-02-12 | 3
Я ожидаю, что все последние 7 дней будут в последовательности (не так, как текущий вывод, где после 2019-02-19
отсутствуют даты 2019-02-16
, 2019-02-17
и 2019-02-18
).Мне нужно, чтобы, если дата отсутствует, она должна отображаться со счетом 0.
Мой ожидаемый результат такой, как показано ниже:
ActivityDate | UserCount
----------------------
2019-02-21 | 2
2019-02-20 | 3
2019-02-19 | 2
2019-02-18 | 0
2019-02-17 | 0
2019-02-16 | 0
2019-02-15 | 2