美文网首页
第一个存储过程

第一个存储过程

作者: 顾道夫 | 来源:发表于2018-06-22 16:15 被阅读0次

车轮战项目 ,老板让我写个定时计算每日答题的总人数的存储过程,有点蒙逼,没写过存储过程

一步步来

1.首先先写一个SQL 查询当天答题总人数(非手机端)

select create_time,season_code,count(distinct user_id)

from wheel_war.epg_answer_record

where DATE_FORMAT(create_time,'%Y-%m-%d')=DATE_FORMAT(now(),'%Y-%m-%d') and length(user_id) not in (11);

这里用到了:

(1)获取系统当前时间并且格式成我们需要的格式DATE_FORMAT(now(),'%Y-%m-%d') 

(2)非手机端加了个判断length(user_id) not in (11);长度不等于11

2.查询出结果后我需要插入到另一张表

insert into wheel_war_count.wheel_user_stat (create_time,name,code,user_num) values (now(),'IPTV真实答题人数',code,iptvCount);

原本是想插同一张库的,但是要求插入另个库,于是插入前面加了库名.表名

3.我需要几个变量用户来存放查询结果 为手机人数、电视人数、时间

存储过程中声明变量为

declare boboCount int;

declare iptvCount int;

declare code varchar(255);

declare times datetime;

4.声明变量后需要将查询的数据插入到变量中

select create_time,season_code,count(distinct user_id) into times,code,iptvCount

from wheel_war.epg_answer_record

where DATE_FORMAT(create_time,'%Y-%m-%d')=DATE_FORMAT(now(),'%Y-%m-%d') and length(user_id) not in (11);

5.最终成型了存储过程

BEGIN

declare boboCount int;

declare iptvCount int;

declare code varchar(255);

declare times datetime;

select create_time,season_code,count(distinct user_id) into times,code,iptvCount

from wheel_war.epg_answer_record

where DATE_FORMAT(create_time,'%Y-%m-%d')=DATE_FORMAT(now(),'%Y-%m-%d') and length(user_id) not in (11);

insert into wheel_war_count.wheel_user_stat (create_time,name,code,user_num) values (now(),'IPTV真实答题人数',code,iptvCount);

end

然后根据需求增加手机端的部分

BEGIN

declare boboCount int;

declare iptvCount int;

declare code varchar(255);

declare times datetime;

select create_time,season_code,count(distinct user_id) into times,code,boboCount

from wheel_war.epg_answer_record

where DATE_FORMAT(create_time,'%Y-%m-%d')=DATE_FORMAT(now(),'%Y-%m-%d') and length(user_id) in (11);

select create_time,season_code,count(distinct user_id) into times,code,iptvCount

from wheel_war.epg_answer_record

where DATE_FORMAT(create_time,'%Y-%m-%d')=DATE_FORMAT(now(),'%Y-%m-%d') and length(user_id) not in (11);

insert into wheel_war_count.wheel_user_stat (create_time,name,code,user_num) values (now(),'手机端真实答题人数',code,boboCount);

insert into wheel_war_count.wheel_user_stat (create_time,name,code,user_num) values (now(),'IPTV真实答题人数',code,iptvCount);

end

相关文章

  • Oracle存储过程总结

    Oracle存储过程总结 1.存储过程结构 1.1 第一个存储过程 上面就是一个最简单的存储过程。一个存储过程大体...

  • Oracle存储过程基本结构说明

    1.存储过程结构 1.1第一个存储过程 上面是一个简单的存储过程实例.一个存储过程大体分为这么几个部分: 存储过程...

  • 存储过程

    1.第一个存储过程,打印hello word/*调用存储过程 exec sayhello(); beginsayh...

  • 开发日记:Orcale 存储过程(一)

    由于项目中用到存储过程,这两天把存储过程方面的知识简单回顾了一下并分享给大家。 编写第一个存储过程 上述代码实现的...

  • 第一个存储过程

    车轮战项目 ,老板让我写个定时计算每日答题的总人数的存储过程,有点蒙逼,没写过存储过程 一步步来 1.首先先写一个...

  • Mysql存储过程

    阅读目录:MySQL存储过程_创建-调用-参数 存储过程:SQL中的“脚本” 创建存储过程 调用存储过程 存储过程...

  • MySQL批量添加数据

    创建存储过程 执行存储过程 删除存储过程

  • 17 存储过程

    过程: 函数: 过程是没有返回值的函数 存储过程: 存储过程语法 存储过程1--创建简单的存储过程 存储过程2--...

  • 存储过程

    详见存储过程详解 创建存储过程 使用存储过程 存储过程简介 什么是存储过程:存储过程可以说是一个记录集吧,它是由一...

  • 存储过程与函数

    存储过程与函数存储过程的定义存储过程的创建存储过程的操作自定义函数 存储过程与函数 存储过程的定义 运行效率高 降...

网友评论

      本文标题:第一个存储过程

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