zoukankan      html  css  js  c++  java
  • MySQL 基于存储过程 实现数据统计按日、周、月份统计模板

     

    存储过程developer_count 是根据传入参数searchType 决定是使用那种查询方式,本存储过程中包含的其他的参数是{起始时间:startime,结束时间:endtime}

    [html] view plain copy
     
    1. CREATE PROCEDURE developer_count  
    2. (  
    3.   searchType int,  
    4.     startTime varchar(64),  
    5.     endTime varchar(64)  
    6. )  
    7. BEGIN  
    8.     /*定义变量天数*/  
    9.   declare day_num int;  
    10.   
    11.   if searchType = 1 then   
    12.   /*本周数据查询*/  
    13.    select count(d.acct_id),d.acct_old_time from developer d where  1=1 and DATE_SUB(CURDATE(), INTERVAL 7 DAY) <= date(d.acct_old_time) GROUP BY d.acct_old_time;  
    14.     end if;  
    15.   if searchType = 2 then  
    16.     /*本月数据查询*/  
    17.         select count(d.acct_id),d.acct_old_time from developer d where  1=1 and DATE_SUB(CURDATE(), INTERVAL 30 DAY) <= date(d.acct_old_time) GROUP BY d.acct_old_time;  
    18.   end if;  
    19.   if searchType = 3 then  
    20.     /*最近三个月数据查询*/  
    21.         select count(d.acct_id), DATE_FORMAT(d.acct_old_time,'%x年-第%v周') as weeks from developer d where  1=1 and DATE_SUB(CURDATE(), INTERVAL 90 DAY) <= date(d.acct_old_time) GROUP BY weeks;  
    22.   end if;  
    23.   if searchType = 4 then  
    24.     /*按月份进行数据统计*/  
    25.         select datediff(startTime, endTime) into day_num;  
    26.         if day_num <=7 then  
    27.                 select count(d.acct_id),d.acct_old_time from developer d where  1=1 and DATE_SUB(CURDATE(), INTERVAL day_num DAY) <= date(d.acct_old_time) GROUP BY d.acct_old_time;  
    28.         end if;  
    29.         if day_num >7  && day_num <= 30 then  
    30.                 select count(d.acct_id),d.acct_old_time from developer d where  1=1 and DATE_SUB(CURDATE(), INTERVAL day_num DAY) <= date(d.acct_old_time) GROUP BY d.acct_old_time;  
    31.         end if;  
    32.         if day_num >30 && day_num <= 90 then  
    33.                 select count(d.acct_id), DATE_FORMAT(d.acct_old_time,'%x年-第%v周') as weeks from developer d where  1=1 and DATE_SUB(CURDATE(), INTERVAL day_num DAY) <= date(d.acct_old_time) GROUP BY weeks;  
    34.         end if;       
    35.     end if;  
    36.   
    37. end;  

    调用存储过程方法

    CALL DEVELOPER_COUNT(1,'2016-06-07','2016-06-16');调用存储过程

  • 相关阅读:
    网站如何知道浏览器的用户在使用什么语言?
    安装 Couchbase 服务器
    windows Phone 浏览器窗口的尺寸
    【leetcode】 9. palindrome number
    Android Notification实现推送消息过程中接受到消息端有声音及震动及亮屏提示
    UVA 12487 Midnight Cowboy(LCA+大YY)(好题)
    Jenkins——应用篇——插件使用——Publish over SSH
    Linux经常使用命令(三)
    c++引用总结
    quickcocos2dx framework环境变 fatal error C1083: 无法打开源文件:“.Box2D/Dynamics/b2World.h”: No such file or d
  • 原文地址:https://www.cnblogs.com/fire909090/p/7102544.html
Copyright © 2011-2022 走看看