美文网首页
SQL-统计查询

SQL-统计查询

作者: Lrxc | 来源:发表于2020-01-17 21:40 被阅读0次

-- 今天
select * from sp_pass_record where to_days(pass_time) = to_days(now());
    
-- 一周   
select sex ss,COUNT(*) from sp_pass_record  where DATE_SUB(CURDATE(), INTERVAL 7 DAY) <= date(pass_time) group by ss;

-- 按天统计
select DATE_FORMAT('2020-01-11','%Y%-%m-%d') days,count(*) count from sp_pass_record group by days;

-- 按周统计
select DATE_FORMAT('2020-01-10 18:31:37','%Y-%u') weeks,count(*) count from sp_pass_record group by weeks;

-- 按月统计
select DATE_FORMAT('2020-01-10 18:31:37','%Y-%m') months,count(*) count from sp_pass_record group by months;

-- 统计最近七天内的数据并按天分组
SELECT
    DATE_FORMAT(pass_time, '%Y-%m-%d' ) days,
    count(*) count 
FROM
(SELECT * FROM sp_pass_record WHERE DATE_SUB(CURDATE(), INTERVAL 7 DAY ) <= date(pass_time) ) as da
GROUP BY days;


-- 查询一天中每一个小时的记录数量
SELECT DATE_FORMAT(pass_time, '%k' ) hour,count(*) count 
FROM (select * from sp_pass_record where to_days(pass_time) = to_days(now())) as da
GROUP BY hour;

-- 查询一天中每一个小时的记录数量
SELECT HOUR(e.pass_time) as Hour,count(*) as Count 
FROM sp_pass_record e 
WHERE e.pass_time >= str_to_date('2020-01-17 00:00:00','%Y-%m-%d %T') AND e.pass_time < str_to_date('2020-01-17 23:59:59','%Y-%m-%d %T') 
GROUP BY HOUR(e.pass_time) ORDER BY Hour(e.pass_time)


-------------------------------------------------------------------------------------------------------------------


-- 24小时统计
SELECT DATE_FORMAT(pass_time, '%k' ) hour,count(*) count 
FROM sp_pass_record where to_days(pass_time) = to_days(now())-2
GROUP BY hour;


select @num:=@num+1,date_format(adddate('2020-01-19', INTERVAL @num HOUR),'%k') as hour
from sp_pass_record,(select @num:=0) t 
where adddate('2020-01-19', INTERVAL @num HOUR) <= date_format('2020-01-20','%Y-%m-%d')

-- 24小时补全
select @num:=@num+1,date_format(adddate(now(), INTERVAL @num HOUR),'%k') as hour
from sp_pass_record,(select @num:=0) t 
where adddate(now(), INTERVAL @num HOUR) <= date_format('2020-01-20','%Y-%m-%d')


SELECT a.num,a.hour,b.hour,IFNULL(b.count,0) count FROM 
(select @num:=@num+1 as num,date_format(adddate('2020-01-18', INTERVAL @num HOUR),'%k') as hour 
from sp_pass_record,(select @num:=0) t 
where adddate('2020-01-18', INTERVAL @num HOUR) <= date_format('2020-01-19','%Y-%m-%d')
) a 
LEFT JOIN 
(SELECT DATE_FORMAT(pass_time, '%k' ) hour,count(*) count 
FROM sp_pass_record 
where pass_time BETWEEN '2020-01-17' and '2020-01-18' GROUP BY hour
) b
on a.hour = b.hour
 
 



相关文章

  • SQL-统计查询

  • 一、数据库之SQL语句

    一、SQL创表 二、SQL-插入 三、SQL-修改 四、SQL-删除 五、SQL-查询 以上是SQL语句常用的用法...

  • sql

    sql-基础sql-基础查询-1sql-基础查询-2sql-更新 概览 数据库(Database,DB):将大量数...

  • sql-查询-bad

    1.sql查询语句(查询bad数据) (1)select count(*),bad_type,source,sou...

  • SQL-查询(一)

    查询机制 打开mysql命令行工具,使用用户名和密码登陆 一旦服务器通过用户名和密码的验证,则为用户成立一个数据库...

  • SQL-排序查询

    三.排序查询 语法:select 查询列表字段 from 表 where 筛选条件 order by 排序列表的字...

  • SQL-分组查询

    分组查询 语法: 注意:查询列表必须特殊,要求是分组函数和group by后出现的字段 特点: 分组查询中的筛选条...

  • SQL-条件查询

    二.条件查询 语法:select 查询列表 from 表名 where 筛选条件;ps:查询列表可以是:表中的字段...

  • SQL-连接查询

    连接查询 又叫:多表查询、多表连接含义:当查询的子都啊来自多个表时,就会用到连接查询 笛卡尔乘积现象:表1有m行,...

  • SQL- 基础查询

    一.基础查询 语法:select 查询列表 from 表名 特点:1.查询列表可以是:表中的字段、常量值、表达式、...

网友评论

      本文标题:SQL-统计查询

      本文链接:https://www.haomeiwen.com/subject/xdyhzctx.html