zoukankan      html  css  js  c++  java
  • MySql按周,按月,按日分组统计数据

    知识关键词:DATE_FORMAT,在service层循环判断,补齐

    1.  
      select DATE_FORMAT(create_time,'%Y') weeks,count(caseid) count from tc_case group by weeks;
    2.  
      select DATE_FORMAT(create_time,'%Y%u') weeks,count(caseid) count from tc_case group by weeks;
    3.  
      select DATE_FORMAT(create_time,'%Y%m%d') days,count(caseid) count from tc_case group by days;
    4.  
      select DATE_FORMAT(create_time,'%Y%m') months,count(caseid) count from tc_case group by months;
       

    DATE_FORMAT(date,format)

    根据format字符串格式化date值。下列修饰符可以被用在format字符串中:

    %M 月名字(January……December)
    %W 星期名字(Sunday……Saturday)
    %D 有英语前缀的月份的日期(1st, 2nd, 3rd, 等等。)
    %Y 年, 数字, 4 位
    %y 年, 数字, 2 位
    %a 缩写的星期名字(Sun……Sat)
    %d 月份中的天数, 数字(00……31)
    %e 月份中的天数, 数字(0……31)
    %m 月, 数字(01……12)
    %c 月, 数字(1……12)
    %b 缩写的月份名字(Jan……Dec)
    %j 一年中的天数(001……366)
    %H 小时(00……23)
    %k 小时(0……23)
    %h 小时(01……12)
    %I 小时(01……12)
    %l 小时(1……12)
    %i 分钟, 数字(00……59)
    %r 时间,12 小时(hh:mm:ss [AP]M)
    %T 时间,24 小时(hh:mm:ss)
    %S 秒(00……59)
    %s 秒(00……59)
    %p AM或PM
    %w 一个星期中的天数(0=Sunday ……6=Saturday )
    %U 星期(0……52), 这里星期天是星期的第一天
    %u 星期(0……52), 这里星期一是星期的第一天
    %% 一个文字“%”。

    mysql统计一年12个月的数据,当某个月没数据的时候自动补0

    传值:

    select 
    ifnull(b.num,0),a.date
    from 
    (
    
    SELECT CONCAT(#{year},'-01') AS date UNION
    SELECT CONCAT(#{year},'-02') AS date UNION
    SELECT CONCAT(#{year},'-03') AS date UNION
    SELECT CONCAT(#{year},'-04') AS date UNION
    SELECT CONCAT(#{year},'-05') AS date UNION
    SELECT CONCAT(#{year},'-06') AS date UNION
    SELECT CONCAT(#{year},'-07') AS date UNION
    SELECT CONCAT(#{year},'-08') AS date UNION
    SELECT CONCAT(#{year},'-09') AS date UNION
    SELECT CONCAT(#{year},'-10') AS date UNION
    SELECT CONCAT(#{year},'-11') AS date UNION
    SELECT CONCAT(#{year},'-12') AS date
    
    )a
    
    left join
    
    (select count(*) num,DATE_FORMAT(createDate,'%Y-%m')as date from c_item group by date) b
    on a.date = b.date

    查询本年,一条数据

    select 
    sum(case month(createDate) when '1' then 1 else 0 end) as 一月份,
    sum(case month(createDate) when '2' then 1 else 0 end) as 二月份,
    sum(case month(createDate) when '3' then 1 else 0 end) as 三月份,
    sum(case month(createDate) when '4' then 1 else 0 end) as 四月份,
    sum(case month(createDate) when '5' then 1 else 0 end) as 五月份,
    sum(case month(createDate) when '6' then 1 else 0 end) as 六月份,
    sum(case month(createDate) when '7' then 1 else 0 end) as 七月份,
    sum(case month(createDate) when '8' then 1 else 0 end) as 八月份,
    sum(case month(createDate) when '9' then 1 else 0 end) as 九月份,
    sum(case month(createDate) when '10' then 1 else 0 end) as 十月份,
    sum(case month(createDate) when '11' then 1 else 0 end) as 十一月份,
    sum(case month(createDate) when '12' then 1 else 0 end) as 十二月份
    from c_item
    WHERE YEAR(createDate)=YEAR(NOW());
  • 相关阅读:
    eclipse如何与git 配合工作。
    git托管代码(二)
    PPC2003 安装 CFNET 3.5成功
    我的Window Mobile WCF 項目 第三篇 WM窗体设计
    我的Window Mobile WCF 項目 第一篇Mobile开发和WinForm开发的区别
    我的Window Mobile WCF 項目 第七天
    我的Window Mobile WCF 項目 第二篇 WindowsMobile访问WCF
    WCF 用vs2010 和 vs2008的简单对比测试
    vs2010beta1 和 搜狗输入法 冲突,按下 Ctrl 键就报错,重装搜狗解决
    我的Window Mobile WCF 項目 第六天 (二)
  • 原文地址:https://www.cnblogs.com/dk2557/p/13917585.html
Copyright © 2011-2022 走看看