MySQL_活动期间单笔订单最高的且满600元 判别是重激活客户还是10月注册客户_20161031
将29号和30号两个需求放到一个表当中 首先都满足在10.29到31号之间单笔订单最高的且满600元 数据结构为一个用户一个订单ID 一行一行的
上面是第一个表 我们当做主表 a
第二个表 我们找注册表 b left join a on a.用户ID=b.用户ID 找到用户的注册日期
第三个表 我们找之前博客判断新增留存属性用过的方法 取三段时间日期(9.29之前,9.29到10.29,10.29到10.31)的金额去判断 也是以用户ID为单位 一行一个记录 记为c表
SELECT d.*,
CASE
WHEN 9月29日之前的金额 IS NULL AND 历史30天的金额 IS NULL AND MONTH(注册日期)=10 THEN "10月注册且新下单"
WHEN 9月29日之前的金额 IS NULL AND 历史30天的金额 IS NULL AND MONTH(注册日期)<>10 THEN "非10月注册且新下单"
WHEN 9月29日之前的金额 IS NOT NULL AND 历史30天的金额 IS NULL THEN "间隔超过30天"
ELSE NULL END AS 标识
FROM (
SELECT a.*,c.9月29日之前的金额,c.历史30天的金额,c.10月29日到31日的金额,DATE(b.注册时间) AS 注册日期
FROM ( # 29日-31日三天 最高金额订单的用户明细
SELECT 城市,用户ID,用户名称,销售员,订单日期,订单ID AS 最高金额订单ID,金额,CASE WHEN 金额>=600 THEN ">=600" ELSE "<600" END AS 标识1
FROM ( # 29日-31日三天 订单明细
SELECT 城市,用户ID,用户名称,销售员,DATE(订单日期) AS 订单日期,订单ID,SUM(金额) AS 金额
FROM a003_order
WHERE 城市="长春" AND 订单日期>="2016-10-29" AND 订单日期<"2016-11-01" AND 金额>0
GROUP BY 城市,用户ID,订单ID
ORDER BY 城市,用户ID,SUM(金额) DESC
) AS a1
GROUP BY 城市,用户ID
ORDER BY 城市,金额 DESC
)AS a
LEFT JOIN a001_resterant AS b ON a.用户ID=b.用户ID
LEFT JOIN (
SELECT 城市,用户ID
,SUM(IF((订单日期<"2016-09-29"),金额,NULL)) AS 9月29日之前的金额
,SUM(IF((订单日期>="2016-09-29" AND 订单日期<"2016-10-29"),金额,NULL)) AS 历史30天的金额
,SUM(IF((订单日期>="2016-10-29" AND 订单日期<"2016-11-01"),金额,NULL)) AS 10月29日到31日的金额
FROM a003_order
WHERE 城市="长春" AND 金额>0
GROUP BY 城市,用户ID
) AS c ON a.用户ID=c.用户ID
) AS d
HAVING 标识 IS NOT NULL
ORDER BY d.金额 DESC
MySQL_活动期间单笔订单最高的且满600元 判别是重激活客户还是10月注册客户_20161031的更多相关文章
- MySQL活动期间订单满600元并且在活动日期之前超过30天没有下过单_20161030
计算 活动期间订单满600元并且在活动日期之前超过30天没有下过单 首先拿到这个需求,首先需要明确活动日期区间 10.29-10.31,其次要取这个时间段内某天订单额最高的那天及订单额,再次需要判断这 ...
- MySQL活动期间制定月份注册用户下单情况_20161029
在10.29到10.31号期间 10月新注册的用户订单金额满600元赠与优惠券 #3天内订单满600元且10月注册的用户订单明细 SELECT a.城市,a.用户ID,b.用户名称,DATE(b.注册 ...
- MySQL_杭州北仓 12.3-12.7需求活动期间累计下单达到3天及以上的客户_20161212
#C025_02杭州北仓 12.3-12.7需求活动期间累计下单达到3天及以上的客户明细 SELECT d.*,CASE WHEN 下单天次>=3 THEN "下单超过3天" ...
- MySQL 单笔订单满6个及以上产品且金额>=300赠送优惠券_20161103
活动内容: 单笔订单满6个及以上产品(帽子.浴巾除外),金额满赠300元,即赠送300-10元(除帽子.浴巾外)优惠券一张.需求数据:满足条件的用户ID活动时间:11.2-11.5(4天)活动规则:① ...
- Nanjing GDG Meetup 10月19日线下活动
Nanjing GDG 10 月份的线下活动将在本周六 (10/19) 举办,这次会请到对所有开发者都有重要帮助的神器 GoAgent 的作者 Phus Lu 来给我们做一场分享,热烈欢迎大家报名参 ...
- Oracle EBS-SQL (PO-9):检查期间采购订单执行情况.sql
--采购订单执行情况查询(七天内接收情况)select pha.segment1 采购订单, msib.segment1 物料编码, pla.qu ...
- 10月9日Android学习笔记:活动与服务之间的通信
最近在照着<第一行代码>这本书来学安卓,顺便记下笔记.主要的内容是Android中服务的第二种启动方式,通过活动绑定服务来启动服务,实现活动与服务之间的通信. 一. 首先创建一个服务类 p ...
- [2018-11-03]2018年10月28日宁波dotnet社区活动回顾及下次活动预告
离上次活动,有半年了,汗.之后尽量保证每月一次,以组织为主,多邀请嘉宾来分享. 本次活动不足之处 人手不足:由于活动组织事项受限于人手(目前就我一个,这次活动前后我又应邀给大红鹰学院应届生介绍dotn ...
- 活动:新春第一次送书,价值78元 X 3本
新春第一次送书活动,送出3本重量级书籍<深入分布式缓存:从原理到实践>. 作者介绍: 于君泽:蚂蚁金服高级技术专家.花名右军,IT从业超过十五年.对高并发.分布式架构.内建质量.研发管理有 ...
随机推荐
- 求解复数组 中模较大的N个数
//求解复数组 中模较大的N个数 void fianN_Complex(Complex outVec[], int& len, std::vector<int>& inde ...
- php信号处理
pcntl pcntl_signal 信号注册函数 pcntl_alarm 指定秒数中断程序执行任务. 每次执行只会有一个定时器生效,若之前计时器还没结束就定义新定时器,会替代之前定时器并返回之前定时 ...
- Nginx负载均衡简易配置
多台Web服务器水平扩展,进行负载均衡对外服务,是一种很常见的方案. 常用方法用DNS轮询,LVS. DNS轮询虽然有配置简单的有点,但无法实现健康检查,DNS修改需要较长时间失效,对于无域名的内部服 ...
- 简单理解ThreadLocal原理和适用场景
https://blog.csdn.net/qq_36632687/article/details/79551828?utm_source=blogkpcl2 参考文章: 正确理解ThreadLoca ...
- Java正确获取客户端真实IP方法整理
在JSP里,获取客户端的IP地址的方法是:request.getRemoteAddr(),这种方法在大部分情况下都是有效的.但是在通过了Apache,Squid等反向代理软件就不能获取到客户端的真实I ...
- 【React Native开发】React Native控件之RefreshControl组件具体解释(21)
),React Native技术交流4群(458982758)种 enabled bool android平台适用 用来设置下拉刷新功能是否可用 progressBackgroundColo ...
- iOS 使用 Core Plot 绘制统计图表入门
本文转载至 http://blog.csdn.net/zhibudefeng/article/details/7677457 iOS(iPhone/iPad) 下图形组件有两个有名的,s7gra ...
- python 基础 1.5 python数据类型(四)--字典
一.python 数据类型--字典 1.用字符串存储信息,如:存储“姓名,身高,性别”: In [1]: info='Tom 170 M' //字符串存储信息 In [3]: info[0:3] // ...
- the max number of open files 最大打开文件数 ulimit -n RabbitMQ调优
Installing on RPM-based Linux (RHEL, CentOS, Fedora, openSUSE) — RabbitMQ https://www.rabbitmq.com/i ...
- 马尔科夫链在第n步转移的状态的概率分布