教程集 www.jiaochengji.com
教程集 >  数据库  >  mysql  >  正文 Mysql按时间段分组查询来统计会员的个数

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

发布时间:2023-04-30   编辑:jiaochengji.com
教程集为您提供Mysql按时间段分组查询来统计会员的个数等资源,欢迎您收藏本站,我们将为您提供最新的Mysql按时间段分组查询来统计会员的个数资源
今天碰到个需求需要在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` www.111cn.net
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

结果如下 www.111cn.net

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


注意:case when 效率不高,在数据量大时不推荐使用,这里仅列出解决方案,仅供参

您可能感兴趣的文章:
mysql按年度、季度、月度、周、日统计查询的sql语句
Mysql 按年度、季度、月度、周、日统计查询的例子
DB2实验教程:数据查询
设计高效合理的MySQL查询语句的建议
mysql group by和having实例详解
高性能mysql学习笔记总结
Php按时间查询 Mysql常用语句
mysql按时间段来取数据的代码分享
mysql 查询表字段有重复记录个数的方法
mysql索引使用与优化

[关闭]
~ ~