当前位置: 代码迷 >> MySQL >> 使用MySQL统计页面访问及排行
  详细解决方案

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

热度:257   发布时间:2016-05-05 16:28:36.0
使用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



  相关解决方案