zoukankan      html  css  js  c++  java
  • sql改写

    原来的sql:

    SELECT DATE_FORMAT(inventorydate,'%Y') AS YEAR,
                   DATE_FORMAT(inventorydate,'%m') AS MONTH,
                   commercecode,
                   productcode,
                   SUM(thisWeekInventory)
              FROM scm.scm_kc_weekinventory A 
             WHERE DATE_FORMAT(inventorydate,'%Y') = '2020'
               AND inventorydate = (SELECT MAX(inventorydate) 
                                      FROM scm.scm_kc_weekinventory b 
                                     WHERE a.year = b.year 
                                       AND a.month = b.month 
                                       AND a.commercecode = b.commercecode 
                                       AND a.productcode = b.productcode
                                    )
             GROUP BY DATE_FORMAT(inventorydate,'%Y'),
                   DATE_FORMAT(inventorydate,'%m'),
                   commercecode,
                   productcode;

    改写后:

    select inventorydate,
                  commercecode,
                   productcode,COMMERCENAME,
                   SUM(thisWeekInventory)
                 from (select inventorydate,DATE_FORMAT(inventorydate,'%Y'),DATE_FORMAT(inventorydate,'%m'),COMMERCENAME,thisWeekInventory,commercecode,productcode,
                 dense_rank()OVER(PARTITION  BY DATE_FORMAT(inventorydate,'%Y'),DATE_FORMAT(inventorydate,'%m'),commercecode,productcode order by inventorydate desc) as rnk
                 from scm.scm_kc_weekinventory
                   where extract(year from inventorydate)='2020' )ma  where ma.rnk=1
                   GROUP BY inventorydate,
                   commercecode,
                   productcode,COMMERCENAME;

    改写前执行需要10几秒,改写后只需要2s。

  • 相关阅读:
    acwing272. 最长公共上升子序列
    哈夫曼编码简单实现
    Linked List Sorting
    jmeter-线程组
    css-书写规范
    mysql-踩坑记录
    vue-npm install
    css-选择器
    js-process对象
    linux-常用命令
  • 原文地址:https://www.cnblogs.com/5sdba-notes/p/12940954.html
Copyright © 2011-2022 走看看