zoukankan      html  css  js  c++  java
  • MySQL_杭州11月1-29号在线产品在线天数、销售天数_20161129

    杭州11月1-29号在线产品在线天数、销售天数

    1、产品在这个时间段内的每一天的在线情况,然后聚合计算每个产品的在线天数,每一天的在线情况 如果在线记为1,不在线为null

    2、计算每个产品在这个时间段内每天订单情况 再聚合计算每个产品的销售天数 每一天的订单额

    3、将步骤1作为主表 步骤2作为从表 left join 条件为产品ID相等时候

    SELECT a.城市,a.商品分类一级,a.商品分类二级,a.商品分类三级,a.产品ID,a.产品名称,a.在线天数,b.销售天数,b.订单额,
    a.1日,a.2日,a.3日,a.4日,a.5日,a.6日,a.7日,a.8日,a.9日,a.10日,a.11日,a.12日,a.13日,a.14日,a.15日,a.16日,a.17日,a.18日,a.19日,a.20日,a.21日,a.22日,a.23日,a.24日,a.25日,a.26日,a.27日,a.28日,b.1日,b.2日,b.3日,b.4日,b.5日,b.6日,b.7日,b.8日,b.9日,b.10日,b.11日,b.12日,b.13日,b.14日,b.15日,b.16日,b.17日,b.18日,b.19日,b.20日,b.21日,b.22日,b.23日,b.24日,b.25日,b.26日,b.27日,b.28日
    FROM (
        SELECT 城市,a2.商品分类一级,a2.商品分类二级,a2.商品分类三级,a1.产品ID,a2.产品名称,COUNT(在线日期) AS 在线天数
        ,SUM(IF(在线日期='2016-11-01',1,NULL)) AS 1日,SUM(IF(在线日期='2016-11-02',1,NULL)) AS 2日,SUM(IF(在线日期='2016-11-03',1,NULL)) AS 3日,SUM(IF(在线日期='2016-11-04',1,NULL)) AS 4日
        ,SUM(IF(在线日期='2016-11-05',1,NULL)) AS 5日,SUM(IF(在线日期='2016-11-06',1,NULL)) AS 6日,SUM(IF(在线日期='2016-11-07',1,NULL)) AS 7日,SUM(IF(在线日期='2016-11-08',1,NULL)) AS 8日
        ,SUM(IF(在线日期='2016-11-09',1,NULL)) AS 9日,SUM(IF(在线日期='2016-11-10',1,NULL)) AS 10日,SUM(IF(在线日期='2016-11-11',1,NULL)) AS 11日,SUM(IF(在线日期='2016-11-12',1,NULL)) AS 12日
        ,SUM(IF(在线日期='2016-11-13',1,NULL)) AS 13日,SUM(IF(在线日期='2016-11-14',1,NULL)) AS 14日,SUM(IF(在线日期='2016-11-15',1,NULL)) AS 15日,SUM(IF(在线日期='2016-11-16',1,NULL)) AS 16日
        ,SUM(IF(在线日期='2016-11-17',1,NULL)) AS 17日,SUM(IF(在线日期='2016-11-18',1,NULL)) AS 18日,SUM(IF(在线日期='2016-11-19',1,NULL)) AS 19日,SUM(IF(在线日期='2016-11-20',1,NULL)) AS 20日
        ,SUM(IF(在线日期='2016-11-21',1,NULL)) AS 21日,SUM(IF(在线日期='2016-11-22',1,NULL)) AS 22日,SUM(IF(在线日期='2016-11-23',1,NULL)) AS 23日,SUM(IF(在线日期='2016-11-24',1,NULL)) AS 24日
        ,SUM(IF(在线日期='2016-11-25',1,NULL)) AS 25日,SUM(IF(在线日期='2016-11-26',1,NULL)) AS 26日,SUM(IF(在线日期='2016-11-27',1,NULL)) AS 27日,SUM(IF(在线日期='2016-11-28',1,NULL)) AS 28日
        FROM (
            SELECT 城市,产品ID,DATE(在线日期) AS 在线日期  
            FROM  `a010_dynamic_产品` WHERE 城市='杭州'  AND 在线日期>='2016-11-01' AND 在线日期<CURRENT_DATE 
            GROUP BY 产品ID,DATE(在线日期)
        ) AS a1
        LEFT JOIN `a002_产品` AS a2 ON a1.产品ID=a2.产品ID
        GROUP BY a1.产品ID
    ) AS a
    LEFT JOIN (
        SELECT 城市,产品ID,COUNT(订单日期) AS 销售天数,SUM(金额) AS 订单额
        ,SUM(IF(订单日期='2016-11-01',金额,NULL)) AS 1日,SUM(IF(订单日期='2016-11-02',金额,NULL)) AS 2日,SUM(IF(订单日期='2016-11-03',金额,NULL)) AS 3日,SUM(IF(订单日期='2016-11-04',金额,NULL)) AS 4日
        ,SUM(IF(订单日期='2016-11-05',金额,NULL)) AS 5日,SUM(IF(订单日期='2016-11-06',金额,NULL)) AS 6日,SUM(IF(订单日期='2016-11-07',金额,NULL)) AS 7日,SUM(IF(订单日期='2016-11-08',金额,NULL)) AS 8日
        ,SUM(IF(订单日期='2016-11-09',金额,NULL)) AS 9日,SUM(IF(订单日期='2016-11-10',金额,NULL)) AS 10日,SUM(IF(订单日期='2016-11-11',金额,NULL)) AS 11日,SUM(IF(订单日期='2016-11-12',金额,NULL)) AS 12日
        ,SUM(IF(订单日期='2016-11-13',金额,NULL)) AS 13日,SUM(IF(订单日期='2016-11-14',金额,NULL)) AS 14日,SUM(IF(订单日期='2016-11-15',金额,NULL)) AS 15日,SUM(IF(订单日期='2016-11-16',金额,NULL)) AS 16日
        ,SUM(IF(订单日期='2016-11-17',金额,NULL)) AS 17日,SUM(IF(订单日期='2016-11-18',金额,NULL)) AS 18日,SUM(IF(订单日期='2016-11-19',金额,NULL)) AS 19日,SUM(IF(订单日期='2016-11-20',金额,NULL)) AS 20日
        ,SUM(IF(订单日期='2016-11-21',金额,NULL)) AS 21日,SUM(IF(订单日期='2016-11-22',金额,NULL)) AS 22日,SUM(IF(订单日期='2016-11-23',金额,NULL)) AS 23日,SUM(IF(订单日期='2016-11-24',金额,NULL)) AS 24日
        ,SUM(IF(订单日期='2016-11-25',金额,NULL)) AS 25日,SUM(IF(订单日期='2016-11-26',金额,NULL)) AS 26日,SUM(IF(订单日期='2016-11-27',金额,NULL)) AS 27日,SUM(IF(订单日期='2016-11-28',金额,NULL)) AS 28日
        FROM (#明细 每天每个产品订单额
            SELECT 城市,DATE(订单日期) AS 订单日期,产品ID,产品名称,SUM(金额) AS 金额
            FROM `a003_order`
            WHERE 城市='杭州' AND 金额>0 AND 订单日期>='2016-11-01' AND 订单日期<CURRENT_DATE
            GROUP BY 产品ID,DATE(订单日期)
        ) AS b1
        GROUP BY 产品ID
    ) AS b ON a.产品ID=b.产品ID
    ORDER BY a.商品分类一级,a.商品分类二级,a.商品分类三级,a.在线天数 DESC,b.销售天数 DESC,b.订单额 DESC
  • 相关阅读:
    DeprecationWarning:'open()' is deprecated in mongoose>=4.11.0,use 'openUri()' instead or set the 'useMongoClient' option if using 'connect()' or 'createConnection'
    javascript if else优化指南
    前端上传文件的几种方式
    前端图片优化
    微信小程序中利用时间选择器和js无计算实现定时器(将字符串或秒数转换成倒计时)
    javascript之闭包理解以及应用场景
    网页或微信小程序中使元素占满整个屏幕高度
    微信小程序定时器组件(输入时间字符串即可倒计时)
    自己用js实现全屏滚动
    js获取屏幕宽高
  • 原文地址:https://www.cnblogs.com/Mr-Cxy/p/6114419.html
Copyright © 2011-2022 走看看