CREATE TABLE orders (
user_id int,
created date
);
INSERT INTO orders VALUES
(1, '2022-03-01'),(1, '2022-03-02'),(1, '2022-03-03'),(1, '2022-03-04'),(1, '2022-03-05'),
(1, '2022-03-06'),(1, '2022-03-07'),(1, '2022-03-08'),(1, '2022-03-09'),(1, '2022-03-10'),
(1, '2022-03-11'),(1, '2022-03-12'),(1, '2022-03-13'),(1, '2022-03-14'),(1, '2022-03-15'),
(1, '2022-03-16'),(1, '2022-03-17'),(1, '2022-03-18'),(1, '2022-03-19'),(1, '2022-03-20'),
(1, '2022-03-21'),(1, '2022-03-22'),(1, '2022-03-23'),(1, '2022-03-24'),(1, '2022-03-25'),
(1, '2022-03-26'),(1, '2022-03-27'),(1, '2022-03-28'),(1, '2022-03-29'),(1, '2022-03-30'),
(1, '2022-03-31'),
(1, '2022-04-01'),(1, '2022-04-02'),(1, '2022-04-03')
;
SELECT user_id, count(distinct created)
FROM orders
WHERE created >= DATE_SUB(CURRENT_DATE, INTERVAL 30 DAY)
GROUP BY user_id
HAVING count(distinct created) >= 30;