https://leetcode.com/problems/user-activity-for-the-past-30-days-i/description/ Easy

Условие

Таблица Activity со столбцами:

column type description
user_id int идентификатор пользователя
session_id int идентификатор сессии
activity_date date дата активности
activity_type varchar тип активности

Каждая сессия принадлежит ровно одному пользователю.

Напишите SQL-запрос, который выводит ежедневное количество активных пользователей за период из 30 дней, заканчивающийся 2019-07-27 включительно. Пользователь считается активным в день d, если он совершил хотя бы одну активность в этот день. Результат можно вернуть в любом порядке.

Решение

SELECT
  activity_date AS day,
  COUNT(DISTINCT user_id) AS active_users
FROM Activity
WHERE activity_date BETWEEN DATE_SUB('2019-07-27', INTERVAL 29 DAY)
                         AND '2019-07-27'
GROUP BY activity_date;