CREATE TABLE user_activity ( id INT NOT NULL AUTO_INCREMENT, user_id INT NOT NULL, activity_date DATE NOT NULL, PRIMARY KEY (id) ); INSERT INTO user_activity (user_id, activity_date) VALUES (1, '2021-08-08'), (1, '2021-08-09'), (1, '2021-08-10'), (1, '2021-08-13'), (2, '2021-08-09'), (2, '2021-08-10'), (2, '2021-08-11');
上述的表结构中,大家创建了一个名为user_activity的表,其中包含三个字段:id、user_id和activity_date,分别代表主键、用户ID和活动日期。大家也向表中插入了一些示例数据。
接下来,大家将使用MySQL查询连续三天活跃用户。大家可以使用以下查询语句:
SELECT user_id FROM user_activity WHERE activity_date BETWEEN '2021-08-08' AND '2021-08-15' GROUP BY user_id HAVING COUNT(DISTINCT activity_date) >= 3;
上述查询语句使用了BETWEEN关键字来选取了2021年8月8日至2021年8月15日之间的活动记录,并使用GROUP BY关键字按照用户ID分组。接着,大家使用HAVING关键字来过滤出至少有3条不同的记录,这样大家就能找到连续三日活动的用户。
希望这篇文章能对你有所帮助,如果有任何疑问或建议,欢迎在下面留言。