[SQL]DROP PROCEDURE IF EXISTS truncate_insert_sales_rank_toparow_week;
受影响的行: 0
时间: 0.001s [SQL] CREATE PROCEDURE truncate_insert_sales_rank_toparow_week ()
BEGIN
TRUNCATE sales_rank_toparow_week ;
INSERT INTO sales_rank_toparow_week (
fk_countrycode,
fk_categoryid,
history_year,
history_week
) SELECT
country,
categoryid,
grab_year,
grab_week
FROM
grab_sales_rank_week
GROUP BY
country,
categoryid,
grab_year,
grab_week ;
END;
受影响的行: 0
时间: 0.001s [SQL] CALL truncate_insert_sales_rank_toparow_week;
受影响的行: 11281
时间: 0.299s [SQL] DROP PROCEDURE IF EXISTS insert_update_sales_rank_toparow_week;
受影响的行: 0
时间: 0.000s [SQL] CREATE PROCEDURE insert_update_sales_rank_toparow_week ()
BEGIN
SET @wtab = ' sales_rank_toparow_week ';
SET @wtab_src = 'grab_sales_rank_week';
SET @w = 10;
SET @wyear_max=(SELECT MAX(grab_year) FROM grab_sales_rank_week)+1;
SET @wyear = (SELECT MIN(grab_year) FROM grab_sales_rank_week); WHILE @w < 101 DO
WHILE @wyear < @wyear_max DO
SET @wweek=(SELECT MIN(grab_week) FROM grab_sales_rank_week WHERE grab_year=@wyear);
SET @wweek_max=(SELECT MAX(grab_week) FROM grab_sales_rank_week WHERE grab_year=@wyear)+1;
WHILE @wweek < @wweek_max DO DROP TEMPORARY TABLE IF EXISTS wtmp;
SET @wtmp_where = CONCAT(' WHERE src.grab_year=',@wyear,' AND src.grab_week=',@wweek,' AND src.topx=',@w);
SET @wimp = ' src.country,src.categoryid,src.grab_year,src.grab_week,src.topx,src.sum_coin,src.sum_amount,tab.autoid,tab.fk_countrycode,tab.fk_categoryid,tab.history_year,tab.history_week ';
SET @wjoin = CONCAT(' src LEFT JOIN ',@wtab,' tab ON tab.fk_countrycode = src.country AND tab.fk_categoryid = src.categoryid AND tab.history_year = src.grab_year AND tab.history_week = src.grab_week ');
SET @wtmp = CONCAT('CREATE TEMPORARY TABLE wtmp AS SELECT ',@wimp,' FROM ',@wtab_src,@wjoin,@wtmp_where,';');
PREPARE stmt0 FROM @wtmp ;
EXECUTE stmt0 ;
DROP PREPARE stmt0; SET @wfield = CONCAT('coin',@w);
SET @wfieldb = CONCAT('amount',@w);
SET @wpre = CONCAT('UPDATE ',@wtab,' wf LEFT JOIN wtmp ON wf.autoid=wtmp.autoid SET wf.',@wfield,'=wtmp.sum_coin, wf.',@wfieldb,'=wtmp.sum_amount WHERE wf.autoid=wtmp.autoid');
PREPARE stmt1 FROM @wpre ;
EXECUTE stmt1 ;
DROP PREPARE stmt1; SET @wweek=@wweek+1;
END WHILE ;
SET @wyear=@wyear+1;
END WHILE ;
SET @wyear = (SELECT MIN(grab_year) FROM grab_sales_rank_week);
SET @w=@w+10;
END WHILE ;
END;
受影响的行: 0
时间: 0.001s [SQL] CALL insert_update_sales_rank_toparow_week;
受影响的行: 0
时间: 12.162s
 DROP PROCEDURE IF EXISTS truncate_insert_sales_rank_toparow_week;
DELIMITER /w/
CREATE PROCEDURE truncate_insert_sales_rank_toparow_week ()
BEGIN
TRUNCATE sales_rank_toparow_week ;
INSERT INTO sales_rank_toparow_week (
fk_countrycode,
fk_categoryid,
history_year,
history_week
) SELECT
country,
categoryid,
grab_year,
grab_week
FROM
grab_sales_rank_week
GROUP BY
country,
categoryid,
grab_year,
grab_week ;
END/w/
DELIMITER;
CALL truncate_insert_sales_rank_toparow_week; DROP PROCEDURE IF EXISTS insert_update_sales_rank_toparow_week;
DELIMITER /w/
CREATE PROCEDURE insert_update_sales_rank_toparow_week ()
BEGIN
SET @wtab = ' sales_rank_toparow_week ';
SET @wtab_src = 'grab_sales_rank_week';
SET @w = 10;
SET @wyear_max=(SELECT MAX(grab_year) FROM grab_sales_rank_week)+1;
SET @wyear = (SELECT MIN(grab_year) FROM grab_sales_rank_week); WHILE @w < 101 DO
WHILE @wyear < @wyear_max DO
SET @wweek=(SELECT MIN(grab_week) FROM grab_sales_rank_week WHERE grab_year=@wyear);
SET @wweek_max=(SELECT MAX(grab_week) FROM grab_sales_rank_week WHERE grab_year=@wyear)+1;
WHILE @wweek < @wweek_max DO DROP VIEW IF EXISTS wview;
SET @wview_where = CONCAT(' WHERE grab_year=',@wyear,' AND grab_week=',@wweek,' AND topx=',@w);
SET @wimp = ' country,categoryid,grab_year,grab_week,topx,sum_coin,sum_amount ';
SET @wview = CONCAT('CREATE VIEW wview AS SELECT ',@wimp,' FROM ',@wtab_src,@wview_where,';');
PREPARE stmt0 FROM @wview ;
EXECUTE stmt0 ;
DROP PREPARE stmt0; DROP VIEW IF EXISTS wview1;
SET @wview1_where = CONCAT(' WHERE history_year=',@wyear,' AND history_week=',@wweek,';'); SET @wfield = CONCAT('coin',@w);
SET @wfieldb = CONCAT('amount',@w); SET @wimp = CONCAT(' fk_countrycode,fk_categoryid,history_year,history_week,',@wfield,',',@wfieldb);
SET @wview1 = CONCAT('CREATE VIEW wview1 AS SELECT ',@wimp,' FROM ',@wtab,@wview1_where,';');
PREPARE stmt2 FROM @wview1 ;
EXECUTE stmt2 ;
DROP PREPARE stmt2; SET @wnewvalue = CONCAT('(SELECT sum_coin FROM wview da WHERE wview1.fk_countrycode = da.country AND wview1.fk_categoryid = da.categoryid AND wview1.history_year = da.grab_year AND wview1.history_week = da.grab_week AND da.topx=',@w,' )'); SET @wnewvalueb = CONCAT('(SELECT sum_amount FROM wview da WHERE wview1.fk_countrycode = da.country AND wview1.fk_categoryid = da.categoryid AND wview1.history_year = da.grab_year AND wview1.history_week = da.grab_week AND da.topx=',@w,' )'); SET @wpre = CONCAT('UPDATE ',' wview1 ',' SET ',@wfield,'=',@wnewvalue,',',@wfieldb,'=',@wnewvalueb);
PREPARE stmt1 FROM @wpre ;
EXECUTE stmt1 ;
DROP PREPARE stmt1; SET @wweek=@wweek+1;
END WHILE ;
SET @wyear=@wyear+1;
END WHILE ;
SET @wyear = (SELECT MIN(grab_year) FROM grab_sales_rank_week);
SET @w=@w+10;
END WHILE ;
END/w/
DELIMITER ;
CALL insert_update_sales_rank_toparow_week;

12.162s 1805.867s的更多相关文章

  1. python 各模块

    01 关于本书 02 代码约定 03 关于例子 04 如何联系我们 1 核心模块 11 介绍 111 内建函数和异常 112 操作系统接口模块 113 类型支持模块 114 正则表达式 115 语言支 ...

  2. Android/Linux boot time分析优化

    如果需要优化boot time,就需要一个量化的工具来分析每个阶段的时间消耗.这种类型的优化特别适合使用基于timeline的图表,有着明显的时间顺序.要求不但能给出整个流程消耗的时间,还要能对流程进 ...

  3. Python Standard Library

    Python Standard Library "We'd like to pretend that 'Fredrik' is a role, but even hundreds of vo ...

  4. 在mybatis中写sql语句的一些体会

    本文会使用一个案例,就mybatis的一些基础语法进行讲解.案例中使用到的数据库表和对象如下: article表:这个表存放的是文章的基础信息 -- ------------------------- ...

  5. AndroidStudio — Error:Failed to resolve: junit:junit:4.12错误解决

    原博客:http://blog.csdn.net/u013443865/article/details/50243193 最近使用AndroidStudio出现以下问题: 解决:打开app下的buil ...

  6. 读过MBA的CEO更自私?《哈佛商业评论》2016年第12期。4星

    老牌管理杂志.每期都值得精度.本期我还是给4星. 以下是本书中的一些内容的摘抄: 1:他们发现在Airbnb上,如果客人姓名听起来像黑人,那么比名字像白人的客人的接受率会低16%.#45 2:对立组织 ...

  7. 12个小技巧,让你高效使用Eclipse

    集成开发环境(IDE)让应用开发更加容易.它们强调语法,让你知道是否你存在编译错误,在众多的其他事情中允许你单步调试代码.像所有的IDE一 样,Eclipse也有快捷键和小工具,这些会让您感觉轻松许多 ...

  8. 第12章 Linux系统管理

    1. 进程管理 1.1 进程查看 (1)进程简介 进程是正在执行的一个程序或命令(如ls命令也是一个进程),每个进程都是一个运行的实体,都有自己的地址空间,并占用一定的系统资源. (2)进程管理的作用 ...

  9. Jexus Web Server 完全傻瓜化图文配置教程(基于Ubuntu 12.04.3 64位)[内含Hyper-v 2012虚拟机镜像下载地址]

    1. 前言 近日有感许多新朋友想尝试使用Jexus,不过绝大多数都困惑徘徊在Linux如何安装啊,如何编译Mono啊,如何配置Jexus啊...等等基础问题,于是昨日向宇内流云兄提议,不如搞几个配置好 ...

随机推荐

  1. Git pull 强制覆盖本地文件

    git fetch --all git reset --hard origin/master git pull

  2. Codeforces 696D Legen...(AC自动机 + 矩阵快速幂)

    题目大概说给几个字符串,每个字符串都有一个开心值,一个串如果包含一次这些字符串就加上对应的开心值,问长度n的串开心值最多可以是多少. POJ2778..复习下..太弱了都快不会做了.. 这个矩阵的乘法 ...

  3. Python: 常用list, string处理功能

    #1. keep strings in double quote as one word when split string to words #e.g. str = ‘a b "is si ...

  4. outlook——还原“未读邮件”文件夹

    参考链接:http://office.microsoft.com/zh-cn/outlook-help/HA010283248.aspx 摘抄: 还原“未读邮件”文件夹 全部显示 全部隐藏 “未读邮件 ...

  5. BZOJ4662 : Snow

    首先离散化,即相邻关键点之间的部分可以压成一段. 注意到区间互不包含,因此排序后每个位置的清理影响到的是一段连续区间的清理工的工作长度. 这显然可以用线段树维护,支持区间减去一个数,单点加上$inf$ ...

  6. 不刷新改变URL: pushState + Ajax

    如果你玩过Google+,看到过YouTube的新界面,便会体验到这个HTML5的新功能.使用pushState + Ajax(pjax),可以实现网页的ajax加载,同时又能完成URL的改变而没有网 ...

  7. ACM 精挑细选

    精 挑 细 选 时间限制:3000 ms  |  内存限制:65535 KB 难度:1   描述 小王是公司的仓库管理员,一天,他接到了这样一个任务:从仓库中找出一根钢管.这听起来不算什么,但是这根钢 ...

  8. [题解+总结]NOIP动态规划大合集

    1.前言 NOIP2003-2014动态规划题目大合集,有简单的也有难的(对于我这种动态规划盲当然存在难的),今天就把这些东西归纳一下,做一个比较全面的总结,方便对动态规划有一个更深的理解. 2.NO ...

  9. BZOJ4027: [HEOI2015]兔子与樱花 贪心

    觉得是贪心,但是一开始不太肯定...然后就A了 一个点对它的父亲的贡献就是自己的权值加儿子的个数 #include<bits/stdc++.h> using namespace std; ...

  10. 最完美解决方案:js弹出窗口关闭当前页面,而不弹出提示框

    该功能主要用于业务系统中的登录操作,登录后弹出全屏的业务系统主界面,而不需要工具栏.地址栏.菜单等功能. 之前针对不同浏览器找了无数种方法,包括网上能查到的所有方法,弹出的结果都不理想.结果有的IE6 ...