MySQL数据库SQL语句分析用户活跃情况

news/2025/2/28 2:50:22/
  1. 数据库建表语句

用户表 (users)

sql">CREATE TABLE users (user_id INT AUTO_INCREMENT PRIMARY KEY,register_date DATE NOT NULL,user_name VARCHAR(255) NOT NULL
);

这个表用于存储用户的基本信息, user_id 是用户的唯一标识, register_date 记录用户注册日期, user_name 是用户名。

行为日志表 (behavior_logs)

sql">CREATE TABLE behavior_logs (log_id INT AUTO_INCREMENT PRIMARY KEY,user_id INT NOT NULL,log_date DATETIME NOT NULL,page_visited VARCHAR(255),click_count INT,停留时间 INT,FOREIGN KEY (user_id) REFERENCES users(user_id)
);

此表记录用户的行为日志, log_id 是日志的唯一标识, user_id 关联到 users 表的 user_id , log_date 记录行为发生的时间, page_visited 记录访问的页面, click_count 记录点击次数, 停留时间 记录在页面停留的时间(单位可以自定义,例如秒)。

  1. 查询语句

统计每日活跃用户数(包括新老用户)

sql">SELECT DATE(log_date) AS active_date,COUNT(DISTINCT user_id) AS total_active_users,COUNT(DISTINCT CASE WHEN DATE(users.register_date) = DATE(log_date) THEN users.user_id END) AS new_active_users,COUNT(DISTINCT CASE WHEN DATE(users.register_date) < DATE(log_date) THEN users.user_id END) AS old_active_users
FROM behavior_logs
JOIN users ON behavior_logs.user_id = users.user_id
GROUP BY DATE(log_date);

这个查询语句通过 behavior_logs 表和 users 表的连接,按日期统计活跃用户数,同时区分新用户(当天注册并活跃)和老用户(之前注册并当天活跃)。

统计每周活跃用户数(包括新老用户)

sql">SELECT YEARWEEK(log_date) AS active_week,COUNT(DISTINCT user_id) AS total_active_users,COUNT(DISTINCT CASE WHEN YEARWEEK(users.register_date) = YEARWEEK(log_date) THEN users.user_id END) AS new_active_users,COUNT(DISTINCT CASE WHEN YEARWEEK(users.register_date) < YEARWEEK(log_date) THEN users.user_id END) AS old_active_users
FROM behavior_logs
JOIN users ON behavior_logs.user_id = users.user_id
GROUP BY YEARWEEK(log_date);

这个查询按周统计活跃用户数,并区分新老用户, YEARWEEK 函数用于获取年份和周数。

统计每月活跃用户数(包括新老用户)

sql">SELECT DATE_FORMAT(log_date, '%Y-%m') AS active_month,COUNT(DISTINCT user_id) AS total_active_users,COUNT(DISTINCT CASE WHEN DATE_FORMAT(users.register_date, '%Y-%m') = DATE_FORMAT(log_date, '%Y-%m') THEN users.user_id END) AS new_active_users,COUNT(DISTINCT CASE WHEN DATE_FORMAT(users.register_date, '%Y-%m') < DATE_FORMAT(log_date, '%Y-%m') THEN users.user_id END) AS old_active_users
FROM behavior_logs
JOIN users ON behavior_logs.user_id = users.user_id
GROUP BY DATE_FORMAT(log_date, '%Y-%m');

这个查询按月统计活跃用户数,并区分新老用户, DATE_FORMAT 函数用于格式化日期为年月格式。

查询用户行为轨迹(以某一天为例)

sql">SELECT users.user_id,users.user_name,behavior_logs.page_visited,behavior_logs.click_count,behavior_logs.停留时间
FROM behavior_logs
JOIN users ON behavior_logs.user_id = users.user_id
WHERE DATE(behavior_logs.log_date) = '2025-01-01';

这个查询获取指定日期(这里是 2025-01-01 )的用户行为轨迹,包括用户ID、用户名、访问页面、点击次数和停留时间。你可以根据需要修改日期。


http://www.ppmy.cn/news/1575395.html

相关文章

reCAPTCHA v3 实现笔记

一、概述 reCAPTCHA v3 是一种用于区分用户和机器人行为的安全验证服务。它通过在后台评估用户行为并返回一个分数来判断用户是否为真实用户。本文将介绍如何在前端和后端实现 reCAPTCHA v3 的集成。 二、注册和密钥生成 注册 reCAPTCHA v3 访问 Google reCAPTCHA 管理页面&a…

将夸克网盘的webdav挂载成本地磁盘驱动器时报错“405“

1 准备 alist挂载夸克网盘完毕。网页浏览器处可以访问夸克网盘里的文件。 2 故障现象 但是用RaiDrive或rclone等将之挂载成本地磁盘会报错"405"。 3 解法 alist的web管理页面上给“用户&#xff08;一般是admin&#xff09;->编辑->权限"里的webdav读…

uni-app集成sqlite

Sqlite SQLite 是一种轻量级的关系型数据库管理系统&#xff08;RDBMS&#xff09;&#xff0c;广泛应用于各种应用程序中&#xff0c;特别是那些需要嵌入式数据库解决方案的场景。它不需要单独的服务器进程或系统配置&#xff0c;所有数据都存储在一个单一的普通磁盘文件中&am…

MySQL无法连接到本地localhost的解决办法2024.11.8

问题描述&#xff1a;我的MySQL可以远程连接服务器&#xff0c;但无法连接自己的localhost。 错误提示&#xff1a; 2003 - Cant connet to MySQL server on localhost(10061 "Unknown error")查找问题原因&#xff1a; 1. 检查环境变量是否正确&#xff1a;发现没…

【Linux 操作系统】进程管理 - 冯诺依曼体系|进程|环境变量|进程地址空间

目录 一、冯诺依曼体系&#xff1a;计算机世界的"生命循环系统" 二、操作系统&#xff1a;管理软硬件的"超人" 三、进程&#xff1a;计算机中的"平行宇宙" 三、环境变量&#xff1a;进程的"生存环境" 四、进程地址空间&#xff1a…

DeepSeek+谷云科技智能体,快速构建企业知识问答

想必最近大家的朋友圈、短视频平台都被DeepSeek技术刷屏了&#xff0c;教大家如何本地部署DeepSeek搭建本地知识库的经验内容也是数不胜数。但当你的企业兴冲冲想本地化部署时&#xff0c;却发现过程并没有那么简单。 大多数企业在本地部署DeepSeek时会选择在linux环境下&…

23贪心算法

分发饼干 class Solution { public:int findContentChildren(vector<int>& g, vector<int>& s) {int i0,j0;int count0;sort(s.begin(),s.end());sort(g.begin(),g.end());while(i<g.size()&&j<s.size()){if(g[i]<s[j]){i;j;count;}else…

瑞芯微RK安卓Android主板GPIO按键配置方法,触觉智能嵌入式开发

触觉智能分享&#xff0c;瑞芯微RK安卓Android主板GPIO按键配置方法&#xff0c;方便大家更好利用空闲IO&#xff01;由触觉智能Purple Pi OH鸿蒙开发板演示&#xff0c;搭载了瑞芯微RK3566四核处理器&#xff0c;树莓派卡片电脑设计&#xff0c;支持安卓Android、开源鸿蒙Open…