今天碰到個需求需要在log日志表中按照時間段來統計會員的個數,經努力找到了兩種解決方案,記錄下來以備使用.
1.使用case when方法,不建議使用,代碼如下:
- SELECT
- COUNT(DISTINCT user_id) user_count,
- CASE
- WHEN create_time>1395046800 AND create_time<1395050400 THEN '17:00-18:00'
- WHEN create_time>1395050400 AND create_time<1395054000 THEN '18:00-19:00'
- WHEN create_time>1395054000 AND create_time<1395057600 THEN '19:00-20:00'
- WHEN create_time>1395057600 AND create_time<1395061200 THEN '20:00-21:00'
- ELSE 'unknown'
- END AS `date` m.survivalescaperooms.com
- FROM
- tb_user_online_log
- WHERE create_time >1395046800 AND create_time<1395061200
- GROUP BY
- `date`
- ORDER BY create_time
Mysql按時間段分組查詢來統計會員的個數.
2.使用時間戳轉換后分組,代碼如下:
- SELECT
- COUNT(DISTINCT user_id) user_count,
- FROM_UNIXTIME(
- create_time,
- '%Y-%m-%d %H:00:00'
- ) AS hours,
- CONCAT(FROM_UNIXTIME(create_time, '%Y-%m-%d %H:00'),'-',FROM_UNIXTIME(create_time, '%H')+1,":00") AS `date`
- FROM
- tb_user_online_log
- GROUP BY
- hours
- ORDER BY create_time
新聞熱點
疑難解答