我需要计算连续两天处于活动状态的用户数量。我有表格'activity'
user_id | login_time
1234 | 2019-04-15
1456 | 2019-04-15
1234 | 2019-04-16
1456 | 2019-04-17
我如何计算15日和16日活跃用户的数量。
仅需两天,这很容易,但是如果要计算一个月,则必须使用用户变量。
编辑:本月
SELECT
COUNT(user_id)
FROM
(SELECT
user_id
FROM
(SELECT `user_id`, `login_time` FROM user_login
WHERE `login_time` BETWEEN CONCAT(YEAR(NOW()),'-',MONTH(NOW()),'-15')
AND CONCAT(YEAR(NOW()),'-',MONTH(NOW()),'-16'
GROUP BY `user_id`, `login_time`)
user_login)
GROUP By user_id
HAVING COUNT( user_id) = 2) a
CREATE TABLE user_login ( `user_id` INTEGER, `login_time` date ); INSERT INTO user_login (`user_id`, `login_time`) VALUES ('1234', '2019-04-15'), ('1456', '2019-04-15'), ('1456', '2019-04-15'), ('1234', '2019-04-16'), ('1456', '2019-04-17');
✓✓
SELECT COUNT(user_id) FROM (SELECT user_id FROM (SELECT `user_id`, `login_time` FROM user_login WHERE `login_time` BETWEEN '2019-04-15' AND '2019-04-16' GROUP BY `user_id`, `login_time`) user_login GROUP By user_id HAVING COUNT( user_id) = 2) a
| COUNT(user_id)|| -------------:|| 1 |
db <>小提琴here