• Как посчитать количество регистраций по каждому дню месяца?

    Rsa97
    @Rsa97
    Для правильного вопроса надо знать половину ответа
    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`)
    Ответ написан
    4 комментария