网站运营数据统计 Mysql常用sql查询语句小结 独立ip范围,时间段方位每日访问等

本文介绍了如何使用SQL查询统计网站的各种关键数据,包括总独立IP数、热门搜索词、用户行为排序、每日IP数等。提供了一系列针对特定时间段的查询示例,帮助开发者高效获取和分析网站运营数据。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

前言:

        在自己开发网站或某运营项目需要统计网站不同维度的数据时,需要去查询sql数据库,通常查询维护比较固定(遍历所有维度就固定啦),需要统计的数据如:网站历史访问总人数,网站历史用户行为总数据,网站历史用户行为最喜欢点击的模块,最近一周即7日网站用户,每日访问数量,某时间段用户访问的总数等以上所有数据区分是否为独立用户?还是非独立用户,暂时有以下场景

查询的统计维度的需求依次如下:

总览
# 总 独立ip总人数,ip去重
# 总 热词搜索前20条 log_name
# 总 用户行为排序 log_content
# 总 按天筛选每天ip总数,ip未去重

单次数据

# 单 查询某时间独立用户访问用户ip总人数,ip已去重
# 单 查询某时间热词搜索前20条 log_name
# 单 查询某时间用户行为排序log_content次数
# 单 查询用户某时间段每天访问ip总数,ip未去重
# 单 查询用户某时间断每天独立访问ip总数
# 单 查询最近7天的每天独立访问ip总数

Mysql 数据格式和内容示例

# 总 独立ip总人数,ip去重

SQL语句

SELECT
	COUNT(*) AS all_count_ip 
FROM
	( SELECT log_ip FROM web_log GROUP BY log_ip ) AS count_ip;

查询结果

# 总 热词搜索前20条 log_name

SQL语句

SELECT
	log_name,
	COUNT(*) 
FROM
	web_log 
GROUP BY
	log_name 
ORDER BY
	COUNT(*) DESC 
	LIMIT 0,
	20;

查询结果

# 总 用户行为排序 log_content

SQL语句

SELECT
	log_content,
	COUNT(*) 
FROM
	web_log 
GROUP BY
	log_content 
ORDER BY
	COUNT(*) DESC 
	LIMIT 0,
	11;

查询结果

# 总 按天筛选每天ip总数,ip未去重

SQL语句

SELECT
	date_format( log_time, '%Y-%m-%d' ) dat,
	count(*) ip 
FROM
	web_log 
GROUP BY
	date_format( log_time, '%Y-%m-%d' );

查询结果

# 单 查询某时间独立用户访问用户ip总人数,ip已去重

SQL语句

SELECT
	COUNT(*) 
FROM
	( SELECT log_ip FROM web_log WHERE log_time > "2021-8-12" AND log_time < "2021-08-13" GROUP BY log_ip ) AS count_ip;

查询结果

# 单 查询某时间热词搜索前20条 log_name

SQL语句

SELECT
	log_name,
	COUNT(*) 
FROM
	web_log 
WHERE
	log_time > "2021-8-12" 
	AND log_time < "2021-08-13" 
GROUP BY
	log_name 
ORDER BY
	COUNT(*) DESC 
	LIMIT 0,
	20;

查询结果

# 单 查询某时间用户行为排序log_content次数

SQL语句

SELECT
	log_content,
	COUNT(*) 
FROM
	web_log 
WHERE
	log_time > "2021-8-12" 
	AND log_time < "2021-08-13" 
GROUP BY
	log_content 
ORDER BY
	COUNT(*) DESC 
	LIMIT 0,
	11;

查询结果

# 单 查询用户某时间段每天访问ip总数,ip未去重

SQL语句

SELECT
	date_format( log_time, '%Y-%m-%d' ) dat,
	count(*) ip 
FROM
	web_log 
WHERE
	log_time > "2021-08-11" 
	AND log_time < "2021-08-13" 
GROUP BY
	date_format( log_time, '%Y-%m-%d' );

查询结果

# 单 查询用户某时间断每天独立访问ip总数

SQL语句

SELECT
	result.dat,
	count( result.num ) AS num
FROM
	(
	SELECT
		date_format( log_time, '%Y-%m-%d' ) dat,
		count( log_ip ) num
	FROM
		web_log
	WHERE
		log_time > "2021-08-5"
		AND log_time < "2021-08-12"
	GROUP BY
		date_format( log_time, '%Y-%m-%d' ),
		log_ip
	) AS result
GROUP BY
	result.dat

查询结果

# 单 查询最近7天的每天独立访问ip总数

SQL语句

SELECT
	a.time date,
	count( DISTINCT log_ip ) countip
FROM
	(
	SELECT
		id,
		DATE_FORMAT( log_time, '%Y-%m-%d' ) 'time',
		log_name,
		log_ip,
		log_content,
		user_agent,
		submit_name,
		is_delete
	FROM
		web_log
	WHERE
		(
		DATE_SUB( CURDATE(), INTERVAL 7 DAY ) <= date( log_time ))
		AND is_delete = 1
	) a
GROUP BY
	a.time;

查询结果

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

BenjaminQA

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值