使用MySQL统计页面访问及排名


统计访问页面数量,以分辨率进行排名

	SELECT CONCAT(`height` , '*', `width`) AS `resolution` , COUNT(CONCAT(`height`, '*', `width`)) AS `total` 
	FROM `wifi_status_page` 
	GROUP BY CONCAT(`height`, '*', `width`) 
	ORDER BY `total` DESC 
	LIMIT 0 , 30

最近7天页面访问量,每日统计数量,以日期为序

	SELECT td AS showdate, COALESCE( totalcount, 0 ) AS totalcount 
	FROM (
		SELECT CURDATE( ) AS td
		UNION ALL SELECT DATE_ADD( CURDATE( ) , INTERVAL -1 DAY ) 
		UNION ALL SELECT DATE_ADD( CURDATE( ) , INTERVAL -2 DAY ) 
		UNION ALL SELECT DATE_ADD( CURDATE( ) , INTERVAL -3 DAY ) 
		UNION ALL SELECT DATE_ADD( CURDATE( ) , INTERVAL -4 DAY ) 
		UNION ALL SELECT DATE_ADD( CURDATE( ) , INTERVAL -5 DAY ) 
		UNION ALL SELECT DATE_ADD( CURDATE( ) , INTERVAL -6 DAY ) 
		ORDER BY td
	)a
	LEFT JOIN (
		SELECT FROM_UNIXTIME(add_time, '%Y-%m-%d') add_data, COUNT( id ) AS totalcount
		FROM wifi_status_page
		WHERE FROM_UNIXTIME(add_time, '%Y-%m-%d') BETWEEN DATE_ADD(CURDATE(), INTERVAL -6 DAY) AND CURDATE() 
		GROUP BY add_data
	)b ON a.td = b.add_data

最近30天页面访问量,每日统计数量,以日期为序

SELECT td AS showdate, COALESCE( totalcount, 0 ) AS totalcount 
	FROM (
		SELECT CURDATE( ) AS td
		UNION ALL SELECT DATE_ADD(CURDATE(), INTERVAL -1 DAY)
		UNION ALL SELECT DATE_ADD(CURDATE(), INTERVAL -2 DAY)
		UNION ALL SELECT DATE_ADD(CURDATE(), INTERVAL -3 DAY)
		UNION ALL SELECT DATE_ADD(CURDATE(), INTERVAL -4 DAY)
		UNION ALL SELECT DATE_ADD(CURDATE(), INTERVAL -5 DAY)
		UNION ALL SELECT DATE_ADD(CURDATE(), INTERVAL -6 DAY)
		UNION ALL SELECT DATE_ADD(CURDATE(), INTERVAL -7 DAY)
		UNION ALL SELECT DATE_ADD(CURDATE(), INTERVAL -8 DAY)
		UNION ALL SELECT DATE_ADD(CURDATE(), INTERVAL -9 DAY)
		UNION ALL SELECT DATE_ADD(CURDATE(), INTERVAL -10 DAY)
		UNION ALL SELECT DATE_ADD(CURDATE(), INTERVAL -11 DAY)
		UNION ALL SELECT DATE_ADD(CURDATE(), INTERVAL -12 DAY)
		UNION ALL SELECT DATE_ADD(CURDATE(), INTERVAL -13 DAY)
		UNION ALL SELECT DATE_ADD(CURDATE(), INTERVAL -14 DAY)
		UNION ALL SELECT DATE_ADD(CURDATE(), INTERVAL -15 DAY)
		UNION ALL SELECT DATE_ADD(CURDATE(), INTERVAL -16 DAY)
		UNION ALL SELECT DATE_ADD(CURDATE(), INTERVAL -17 DAY)
		UNION ALL SELECT DATE_ADD(CURDATE(), INTERVAL -18 DAY)
		UNION ALL SELECT DATE_ADD(CURDATE(), INTERVAL -19 DAY)
		UNION ALL SELECT DATE_ADD(CURDATE(), INTERVAL -20 DAY)
		UNION ALL SELECT DATE_ADD(CURDATE(), INTERVAL -21 DAY)
		UNION ALL SELECT DATE_ADD(CURDATE(), INTERVAL -22 DAY)
		UNION ALL SELECT DATE_ADD(CURDATE(), INTERVAL -23 DAY)
		UNION ALL SELECT DATE_ADD(CURDATE(), INTERVAL -24 DAY)
		UNION ALL SELECT DATE_ADD(CURDATE(), INTERVAL -25 DAY)
		UNION ALL SELECT DATE_ADD(CURDATE(), INTERVAL -26 DAY)
		UNION ALL SELECT DATE_ADD(CURDATE(), INTERVAL -27 DAY)
		UNION ALL SELECT DATE_ADD(CURDATE(), INTERVAL -28 DAY)
		UNION ALL SELECT DATE_ADD(CURDATE(), INTERVAL -29 DAY)
		ORDER BY td
	)a
	LEFT JOIN (
		SELECT FROM_UNIXTIME(add_time, '%Y-%m-%d') add_data, COUNT( id ) AS totalcount
		FROM wifi_status_page
		WHERE FROM_UNIXTIME(add_time, '%Y-%m-%d') BETWEEN DATE_ADD(CURDATE(), INTERVAL -29 DAY) AND CURDATE() 
		GROUP BY add_data
	)b ON a.td = b.add_data

昨天24小时分时

	SELECT td AS showhour
	FROM (
		SELECT DATE_ADD(CURDATE(), INTERVAL -1 HOUR) as td
		UNION ALL SELECT DATE_ADD(CURDATE(), INTERVAL -2 HOUR)
		UNION ALL SELECT DATE_ADD(CURDATE(), INTERVAL -3 HOUR)
		UNION ALL SELECT DATE_ADD(CURDATE(), INTERVAL -4 HOUR)
		UNION ALL SELECT DATE_ADD(CURDATE(), INTERVAL -5 HOUR)
		UNION ALL SELECT DATE_ADD(CURDATE(), INTERVAL -6 HOUR)
		UNION ALL SELECT DATE_ADD(CURDATE(), INTERVAL -7 HOUR)
		UNION ALL SELECT DATE_ADD(CURDATE(), INTERVAL -8 HOUR)
		UNION ALL SELECT DATE_ADD(CURDATE(), INTERVAL -9 HOUR)
		UNION ALL SELECT DATE_ADD(CURDATE(), INTERVAL -10 HOUR)
		UNION ALL SELECT DATE_ADD(CURDATE(), INTERVAL -11 HOUR)
		UNION ALL SELECT DATE_ADD(CURDATE(), INTERVAL -12 HOUR)
		UNION ALL SELECT DATE_ADD(CURDATE(), INTERVAL -13 HOUR)
		UNION ALL SELECT DATE_ADD(CURDATE(), INTERVAL -14 HOUR)
		UNION ALL SELECT DATE_ADD(CURDATE(), INTERVAL -15 HOUR)
		UNION ALL SELECT DATE_ADD(CURDATE(), INTERVAL -16 HOUR)
		UNION ALL SELECT DATE_ADD(CURDATE(), INTERVAL -17 HOUR)
		UNION ALL SELECT DATE_ADD(CURDATE(), INTERVAL -18 HOUR)
		UNION ALL SELECT DATE_ADD(CURDATE(), INTERVAL -19 HOUR)
		UNION ALL SELECT DATE_ADD(CURDATE(), INTERVAL -20 HOUR)
		UNION ALL SELECT DATE_ADD(CURDATE(), INTERVAL -21 HOUR)
		UNION ALL SELECT DATE_ADD(CURDATE(), INTERVAL -22 HOUR)
		UNION ALL SELECT DATE_ADD(CURDATE(), INTERVAL -23 HOUR)
		UNION ALL SELECT DATE_ADD(CURDATE(), INTERVAL -24 HOUR)
		ORDER BY td
	)a

今天过去的11个小时

	SELECT td AS showhour
	FROM (
		SELECT NOW() AS td
		UNION ALL SELECT DATE_ADD(NOW(), INTERVAL -1 HOUR)
		UNION ALL SELECT DATE_ADD(NOW(), INTERVAL -2 HOUR)
		UNION ALL SELECT DATE_ADD(NOW(), INTERVAL -3 HOUR)
		UNION ALL SELECT DATE_ADD(NOW(), INTERVAL -4 HOUR)
		UNION ALL SELECT DATE_ADD(NOW(), INTERVAL -5 HOUR)
		UNION ALL SELECT DATE_ADD(NOW(), INTERVAL -6 HOUR)
		UNION ALL SELECT DATE_ADD(NOW(), INTERVAL -7 HOUR)
		UNION ALL SELECT DATE_ADD(NOW(), INTERVAL -8 HOUR)
		UNION ALL SELECT DATE_ADD(NOW(), INTERVAL -9 HOUR)
		UNION ALL SELECT DATE_ADD(NOW(), INTERVAL -10 HOUR)
		UNION ALL SELECT DATE_ADD(NOW(), INTERVAL -11 HOUR)
		ORDER BY td
	)a



转载于:https://www.cnblogs.com/lanzhi/p/6467370.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值