user_id соответсвует количеству зарегистрированных клиентов и написал следующий код
Неудачное решение. Нет никаких гарантий, что id будут идти строго последовательно.
Решение для MySQL 8.0 и выше
WITH RECURSIVE `dates` (`date`) AS (
SELECT '2021-06-01'
UNION
SELECT `date` + INTERVAL 1 DAY
FROM `dates`
WHERE `date` < '2021-06-30'
)
SELECT `d`.`date`, MAX(`c`.`count`) OVER `win` AS `registered`
FROM `dates` AS `d`
LEFT JOIN (
SELECT DISTINCT `date`, COUNT(*) OVER `win` AS `count`
FROM `registers`
WINDOW `win` AS (ORDER BY `date`)
) AS `c` ON `c`.`date` = `d`.`date`
WINDOW `win` AS (ORDER BY `d`.`date`)