zoukankan      html  css  js  c++  java
  • 12.162s 1805.867s

     1 [SQL]DROP PROCEDURE IF EXISTS truncate_insert_sales_rank_toparow_week;
     2 受影响的行: 0
     3 时间: 0.001s
     4 
     5 [SQL]
     6 
     7 CREATE PROCEDURE truncate_insert_sales_rank_toparow_week ()
     8 BEGIN
     9 TRUNCATE sales_rank_toparow_week ;
    10 INSERT INTO sales_rank_toparow_week (
    11     fk_countrycode,
    12     fk_categoryid,
    13     history_year,
    14     history_week
    15 ) SELECT
    16     country,
    17     categoryid,
    18     grab_year,
    19     grab_week
    20 FROM
    21     grab_sales_rank_week
    22 GROUP BY
    23     country,
    24     categoryid,
    25     grab_year,
    26     grab_week ;
    27 END;
    28 受影响的行: 0
    29 时间: 0.001s
    30 
    31 [SQL]
    32 
    33 CALL truncate_insert_sales_rank_toparow_week;
    34 受影响的行: 11281
    35 时间: 0.299s
    36 
    37 [SQL]
    38 
    39 DROP PROCEDURE IF EXISTS insert_update_sales_rank_toparow_week;
    40 受影响的行: 0
    41 时间: 0.000s
    42 
    43 [SQL]
    44 
    45 CREATE PROCEDURE insert_update_sales_rank_toparow_week ()
    46 BEGIN
    47 SET @wtab = ' sales_rank_toparow_week  ';
    48 SET @wtab_src = 'grab_sales_rank_week';
    49 SET @w = 10;
    50 SET @wyear_max=(SELECT MAX(grab_year) FROM grab_sales_rank_week)+1;
    51 SET @wyear = (SELECT MIN(grab_year) FROM grab_sales_rank_week);
    52 
    53 WHILE @w < 101 DO
    54     WHILE @wyear < @wyear_max DO
    55         SET @wweek=(SELECT MIN(grab_week) FROM grab_sales_rank_week WHERE grab_year=@wyear);
    56         SET @wweek_max=(SELECT MAX(grab_week) FROM grab_sales_rank_week WHERE grab_year=@wyear)+1;
    57         WHILE @wweek < @wweek_max DO
    58 
    59                 DROP TEMPORARY TABLE IF EXISTS wtmp;
    60                 SET @wtmp_where = CONCAT(' WHERE src.grab_year=',@wyear,' AND src.grab_week=',@wweek,' AND src.topx=',@w);
    61                 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 ';
    62                 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 ');
    63                 SET @wtmp =  CONCAT('CREATE TEMPORARY TABLE wtmp AS SELECT ',@wimp,' FROM ',@wtab_src,@wjoin,@wtmp_where,';');
    64                 PREPARE  stmt0 FROM @wtmp ;
    65                 EXECUTE  stmt0  ;
    66                 DROP PREPARE stmt0;
    67 
    68                 SET @wfield = CONCAT('coin',@w);
    69                 SET @wfieldb = CONCAT('amount',@w);
    70                 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');
    71                 PREPARE  stmt1 FROM @wpre ;
    72                 EXECUTE  stmt1  ;
    73                 DROP PREPARE stmt1;
    74 
    75         SET @wweek=@wweek+1;
    76         END WHILE ;
    77     SET @wyear=@wyear+1;
    78     END WHILE ;
    79 SET @wyear = (SELECT MIN(grab_year) FROM grab_sales_rank_week);
    80 SET @w=@w+10;
    81 END WHILE ;
    82 END;
    83 受影响的行: 0
    84 时间: 0.001s
    85 
    86 [SQL]
    87 
    88 CALL insert_update_sales_rank_toparow_week;
    89 受影响的行: 0
    90 时间: 12.162s
     1 DROP PROCEDURE IF EXISTS truncate_insert_sales_rank_toparow_week;
     2 DELIMITER /w/
     3 CREATE PROCEDURE truncate_insert_sales_rank_toparow_week ()
     4 BEGIN
     5 TRUNCATE sales_rank_toparow_week ;
     6 INSERT INTO sales_rank_toparow_week (
     7     fk_countrycode,
     8     fk_categoryid,
     9     history_year,
    10     history_week
    11 ) SELECT
    12     country,
    13     categoryid,
    14     grab_year,
    15     grab_week
    16 FROM
    17     grab_sales_rank_week
    18 GROUP BY
    19     country,
    20     categoryid,
    21     grab_year,
    22     grab_week ;
    23 END/w/
    24 DELIMITER;
    25 CALL truncate_insert_sales_rank_toparow_week;
    26 
    27 DROP PROCEDURE IF EXISTS insert_update_sales_rank_toparow_week;
    28 DELIMITER /w/
    29 CREATE PROCEDURE insert_update_sales_rank_toparow_week ()
    30 BEGIN
    31 SET @wtab = ' sales_rank_toparow_week  ';
    32 SET @wtab_src = 'grab_sales_rank_week';
    33 SET @w = 10;
    34 SET @wyear_max=(SELECT MAX(grab_year) FROM grab_sales_rank_week)+1;
    35 SET @wyear = (SELECT MIN(grab_year) FROM grab_sales_rank_week);
    36 
    37 WHILE @w < 101 DO
    38     WHILE @wyear < @wyear_max DO
    39         SET @wweek=(SELECT MIN(grab_week) FROM grab_sales_rank_week WHERE grab_year=@wyear);
    40         SET @wweek_max=(SELECT MAX(grab_week) FROM grab_sales_rank_week WHERE grab_year=@wyear)+1;
    41         WHILE @wweek < @wweek_max DO
    42 
    43                 DROP VIEW IF EXISTS    wview;
    44                 SET @wview_where = CONCAT(' WHERE grab_year=',@wyear,' AND grab_week=',@wweek,' AND topx=',@w);
    45                 SET @wimp = ' country,categoryid,grab_year,grab_week,topx,sum_coin,sum_amount ';
    46                 SET @wview =  CONCAT('CREATE VIEW wview AS SELECT ',@wimp,' FROM ',@wtab_src,@wview_where,';');
    47                 PREPARE  stmt0 FROM @wview ;
    48                 EXECUTE  stmt0  ;
    49                 DROP PREPARE stmt0;
    50 
    51                 DROP VIEW IF EXISTS    wview1;
    52                 SET @wview1_where =  CONCAT(' WHERE history_year=',@wyear,' AND history_week=',@wweek,';');
    53 
    54                 SET @wfield = CONCAT('coin',@w);
    55                 SET @wfieldb = CONCAT('amount',@w);
    56 
    57                 SET @wimp = CONCAT(' fk_countrycode,fk_categoryid,history_year,history_week,',@wfield,',',@wfieldb);
    58                 SET @wview1 =  CONCAT('CREATE VIEW wview1 AS SELECT ',@wimp,' FROM ',@wtab,@wview1_where,';');
    59                 PREPARE  stmt2 FROM @wview1 ;
    60                 EXECUTE  stmt2  ;
    61                 DROP PREPARE stmt2;
    62 
    63 
    64                 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,'  )');
    65 
    66                 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,'  )');
    67                                 
    68                 SET @wpre = CONCAT('UPDATE ',' wview1 ',' SET ',@wfield,'=',@wnewvalue,',',@wfieldb,'=',@wnewvalueb);
    69                 PREPARE  stmt1 FROM @wpre ;
    70                 EXECUTE  stmt1  ;
    71                 DROP PREPARE stmt1;
    72 
    73         SET @wweek=@wweek+1;
    74         END WHILE ;
    75     SET @wyear=@wyear+1;
    76     END WHILE ;
    77 SET @wyear = (SELECT MIN(grab_year) FROM grab_sales_rank_week);
    78 SET @w=@w+10;
    79 END WHILE ;
    80 END/w/
    81 DELIMITER ;
    82 CALL insert_update_sales_rank_toparow_week;
  • 相关阅读:
    再次或多次格式化导致namenode的ClusterID和datanode的ClusterID之间不一致的问题解决办法
    Linux安装aria2
    POJ 3335 Rotating Scoreboard 半平面交
    hdu 1540 Tunnel Warfare 线段树 区间合并
    hdu 3397 Sequence operation 线段树 区间更新 区间合并
    hud 3308 LCIS 线段树 区间合并
    POJ 3667 Hotel 线段树 区间合并
    POJ 2528 Mayor's posters 贴海报 线段树 区间更新
    POJ 2299 Ultra-QuickSort 求逆序数 线段树或树状数组 离散化
    POJ 3468 A Simple Problem with Integers 线段树成段更新
  • 原文地址:https://www.cnblogs.com/rsapaper/p/6236413.html
Copyright © 2011-2022 走看看