MySQL_杭州拱墅区、西湖区近9-11月销售过的产品_20161125
需求:杭州拱墅区、西湖区近9-11月销售过的产品
这个SQL如果对数据表熟悉的话可以一步到位,为了看的更清楚,时间间隔在3个月产品数量也不是很多,采取先找明细再进行汇总。
一、第一种写法 分步骤的写SQL 逻辑清晰
1、首先先观察区块的字段
SELECT 区块 FROM `a001_resterant` WHERE 城市='杭州' GROUP BY 区块
可以看到 西湖区是划成了5个分区 因此需要对这5个分区改成统一的分区利用case when 条件判断生成新字段 分区
2、明细。由于用户区块是固定的,先找到每个用户每个月每个产品的销售情况。
SELECT a1.城市,a1.用户ID,DATE_FORMAT(订单日期,"%Y%m") AS 年月,a2.区块,CASE WHEN a2.区块='拱墅区' THEN '拱墅区' WHEN a2.区块 LIKE '西湖%' THEN '西湖区' ELSE NULL END AS 分区,SKUID,SKU名称,SUM(金额) AS 金额
FROM `a003_order` AS a1
LEFT JOIN `a001_resterant` AS a2 ON a1.用户ID=a2.用户ID
WHERE a1.城市='杭州' AND 金额>0 AND (a2.区块='拱墅区' OR a2.区块 LIKE '西湖%') AND 订单日期>='2016-09-01' AND 订单日期<CURRENT_DATE
GROUP BY a1.用户ID,DATE_FORMAT(订单日期,"%Y%m"),SKUID
3、汇总。此时由于嵌套表已把西湖五个区划成统一的西湖区,因此嵌套表里的分区字段进行group by
SELECT 城市,分区,b.商品分类一级,b.商品分类二级,b.商品分类三级,a.SKUID,a.SKU名称,SUM(金额) AS 订单额,SUM(IF(年月=201609,金额,NULL)) AS 9月金额,SUM(IF(年月=201610,金额,NULL)) AS 10月金额,SUM(IF(年月=201611,金额,NULL)) AS 11月金额
FROM (#明细 每个用户所在区块的近三个月销售的SKU
SELECT a1.城市,a1.用户ID,DATE_FORMAT(订单日期,"%Y%m") AS 年月,a2.区块,CASE WHEN a2.区块='拱墅区' THEN '拱墅区' WHEN a2.区块 LIKE '西湖%' THEN '西湖区' ELSE NULL END AS 分区,SKUID,SKU名称,SUM(金额) AS 金额
FROM `a003_order` AS a1
LEFT JOIN `a001_resterant` AS a2 ON a1.用户ID=a2.用户ID
WHERE a1.城市='杭州' AND 金额>0 AND (a2.区块='拱墅区' OR a2.区块 LIKE '西湖%') AND 订单日期>='2016-09-01' AND 订单日期<CURRENT_DATE
GROUP BY a1.用户ID,DATE_FORMAT(订单日期,"%Y%m"),SKUID
) AS a
LEFT JOIN `a002_sku` AS b ON a.SKUID=b.SKUID
GROUP BY 分区,a.SKUID
ORDER BY 分区,b.商品分类一级,b.商品分类二级,b.商品分类三级,SUM(金额) DESC
二、第二种写法 一步到位
SELECT a.城市,CASE WHEN c.区块='拱墅区' THEN '拱墅区' WHEN c.区块 LIKE '西湖%' THEN '西湖区' ELSE NULL END AS 分区,b.商品分类一级,b.商品分类二级,b.商品分类三级,a.SKUID,a.SKU名称,SUM(金额) AS 订单额,SUM(IF(DATE_FORMAT(订单日期,"%Y%m")=201609,金额,NULL)) AS 9月金额,SUM(IF(DATE_FORMAT(订单日期,"%Y%m")=201610,金额,NULL)) AS 10月金额,SUM(IF(DATE_FORMAT(订单日期,"%Y%m")=201611,金额,NULL)) AS 11月金额
FROM `a003_order` AS a
LEFT JOIN `a002_sku` AS b ON a.SKUID=b.SKUID
LEFT JOIN `a001_resterant` AS c ON a.餐馆ID=c.餐馆ID
WHERE a.城市='杭州' AND 金额>0 AND (c.区块='拱墅区' OR c.区块 LIKE '西湖%') AND 订单日期>='2016-09-01' AND 订单日期<CURRENT_DATE
GROUP BY 分区,a.SKUID
ORDER BY 分区,b.商品分类一级,b.商品分类二级,b.商品分类三级,SUM(金额) DESC
MySQL_杭州拱墅区、西湖区近9-11月销售过的产品_20161125的更多相关文章
- MySQL_杭州11月销售昨日未上架的SKU_20161212
#C034杭州11月销售昨日未上架的SKU SELECT 城市,a.订单日期,a.客户数,a.订单数,b.产品数,a.金额,c.销售确认额,c.毛利额,c.毛利率 FROM ( SELECT 城市,订 ...
- MySQL_西安11月销售昨日未上架的产品_20161212
#C034西安11月销售昨日未上架的产品 SELECT 城市,a.订单日期,a.客户数,a.订单数,b.产品数,a.金额,c.销售确认额,c.毛利额,c.毛利率 FROM ( SELECT 城市,订 ...
- MySQL_杭州11月1-29号在线产品在线天数、销售天数_20161129
杭州11月1-29号在线产品在线天数.销售天数 1.产品在这个时间段内的每一天的在线情况,然后聚合计算每个产品的在线天数,每一天的在线情况 如果在线记为1,不在线为null 2.计算每个产品在这个时间 ...
- 微软Power BI 每月功能更新系列——11月Power BI 新功能学习
Power BI Desktop11月产品功能摘要 本月Power BI Desktop 有一个大规模的更新.现在,通常可以使用复合模型在一个模型中将直接查询和导入源组合在一起.UserVoice上的 ...
- CSDN问答频道“华章杯”11月排行榜活动开始,丰厚奖品等你拿
CSDN问答频道月度排行榜,是CSDN问答频道从3月开始举办的活动,旨在鼓励更多用户参与提问和解答,创造一个良好的互帮互助氛围,使参与者在问和答的过程中得到技术水平的提升,也希望大家能在技术交流中结交 ...
- 2014年ENVI/IDL遥感应用与开发培训班-11月重庆站 開始报名了
主办单位: 中国遥感应用协会 Esri中国信息技术有限公司 内容简单介绍: 依据中国遥感应用协会栾恩杰理事长推动国内遥感技术和应用的指示精神,2014年中国遥感应用协会组织培训交流部与Esri中国信息 ...
- psp进度(11月25号-31号)
本周psp进度 11月25号 内容 开始时间 结束时间 打断时间 净时间 处理数据集 9:27 11:34 12m 115m 11月27号 内容 开始时间 结束时间 打断时间 净时间 scr ...
- 本周psp(11月17-23)
本周psp进度 11月19号 内容 开始时间 结束时间 打断时间 净时间 发布读书笔记 11:05 11:25 0 20m 看构建之法书 9:50 10:48 5m 53m 11月20号 内容 开始时 ...
- Autodesk 2013开发者日(DevDays)又要来了 -- 北京(2013年11月7日)和上海(2013年11月11日)
各位, 一年一度的Autodesk 开发者日(Devdays)开始注册了,抓紧时间前排占座! 注册地址: www.autodesk.com.cn/adndevday2013 今年开发者日的主题:革命性 ...
随机推荐
- POJ 1698 Alice's Chance(最大流+拆点)
POJ 1698 Alice's Chance 题目链接 题意:拍n部电影.每部电影要在前w星期完毕,而且一周仅仅有一些天是能够拍的,每部电影有个须要的总时间,问能否拍完电影 思路:源点向每部电影连边 ...
- java中Executor、ExecutorService、ThreadPoolExecutor介绍
源码非常简单,只有一个execute(Runnable command)回调接口 public interface Executor { /** * Executes the given c ...
- 01-jsp与javabean
<%@page import="java.util.Date"%><%@ page language="java" contentType=& ...
- Linux内核源码分析方法_转
Linux内核源码分析方法 转自:http://www.cnblogs.com/fanzhidongyzby/archive/2013/03/20/2970624.html 一.内核源码之我见 Lin ...
- 真正入坑git
之前使用git一直用sourceTree可视化操作,直到今天刚好装不了sourceTree,所有只能苦逼的用git命令行了,真的一片空白,要做下笔记才行. 创建sshKey 创建ssh: ssh-ke ...
- 【BZOJ3924】[Zjoi2015]幻想乡战略游戏 动态树分治
[BZOJ3924][Zjoi2015]幻想乡战略游戏 Description 傲娇少女幽香正在玩一个非常有趣的战略类游戏,本来这个游戏的地图其实还不算太大,幽香还能管得过来,但是不知道为什么现在的网 ...
- 【BZOJ3745】[Coci2015]Norma cdq分治
[BZOJ3745][Coci2015]Norma Description Input 第1行,一个整数N: 第2~n+1行,每行一个整数表示序列a. Output 输出答案对10^9取模后的结果. ...
- nexus搭建maven私服及私服jar包上传和下载
nexus搭建maven私服及私服jar包上传和下载 标签: nexus管理maven库snapshot 2017-06-28 13:02 844人阅读 评论(0) 收藏 举报 分类: Maven(1 ...
- 504 Gateway Timeout Error 502 Bad Gateway
总结 1. 502没有收到相应,或者收到了但不及时? cannot get a response in time 540收到了无效的响应 received an invalid response fr ...
- dm层 集市层 四层 Build a multi-level data strategy
集市层 四层模型 ODS(临时存储层) MID(中间层) DM(数据集市层) APP(应用层) http://www.datamartist.com/data-warehouse-vs-data-ma ...