当前位置:首页 > Mysql教程 > 列表

Mysql按时间段分组查询来统计会员的个数

发布:smiling 来源: PHP粉丝网  添加日期:2014-09-24 22:15:18 浏览: 评论:0 

今天碰到个需求需要在log日志表中按照时间段来统计会员的个数,经努力找到了两种解决方案,记录下来以备使用.

1.使用case when方法,不建议使用,代码如下:

  1. SELECT 
  2.     COUNT(DISTINCT user_id) user_count, 
  3.     CASE 
  4.     WHEN create_time>1395046800 AND create_time<1395050400 THEN '17:00-18:00' 
  5.     WHEN create_time>1395050400 AND create_time<1395054000 THEN '18:00-19:00' 
  6.     WHEN create_time>1395054000 AND create_time<1395057600 THEN '19:00-20:00' 
  7.     WHEN create_time>1395057600 AND create_time<1395061200 THEN '20:00-21:00' 
  8.     ELSE 'unknown' 
  9.     END AS `date` www.phpfensi.com 
  10. FROM 
  11.     tb_user_online_log 
  12. WHERE create_time >1395046800 AND create_time<1395061200 
  13. GROUP BY 
  14.     `date
  15. ORDER BY create_time 

Mysql按时间段分组查询来统计会员的个数.

2.使用时间戳转换后分组,代码如下:

  1. SELECT 
  2.     COUNT(DISTINCT user_id) user_count, 
  3.     FROM_UNIXTIME( 
  4.         create_time, 
  5.         '%Y-%m-%d %H:00:00' 
  6.     ) AS hours, 
  7.     CONCAT(FROM_UNIXTIME(create_time, '%Y-%m-%d %H:00'),'-',FROM_UNIXTIME(create_time, '%H')+1,":00"AS `date
  8. FROM 
  9.     tb_user_online_log 
  10. GROUP BY 
  11.     hours 
  12. ORDER BY create_time

Tags: Mysql分组查询 Mysql统计会员

分享到:

相关文章