博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
临时表添加以及优化
阅读量:4711 次
发布时间:2019-06-10

本文共 3932 字,大约阅读时间需要 13 分钟。

-- ALTER TABLE  `大润发数据测试对比` ADD `消费日期` datetime DEFAULT NULLDELETEFROM    `大润发数据测试对比`;DROP TABLE base ;CREATE TEMPORARY TABLE base SELECT    a.salesdepart_id AS 门店ID,    b.`name` AS 会员姓名,    b.mobile AS 手机号码,    b.create_date AS 注册日期,    ROUND(a.real_pay / 10000, 2) AS 消费金额,        a.sales_date AS 消费日期 ,    COUNT(a.id) AS 消费次数FROM    arm_changsha.goods_sales AS aLEFT JOIN arm_changsha.ms_member_def AS b ON b.id = a.member_idWHERE    b.create_date >= '2019-01-17 00:00:00'AND b.create_date <= '2019-01-30 23:59:59'AND a.salesdepart_id = '1008'AND a.sales_type = '1'AND   ROUND(a.real_pay / 10000, 2) > 10GROUP BY    b.mobile;SELECT * FROM base;-- 选取临时表时,直接选取字段.不用写前缀那些东西. 这个最基础的都不知道.也是醉了.服了你.--  业务存在会员在创建的时候没有购买东西,而后在后续的时间内购买的东西 选取的应该是固定时间段内的会员购买量. 一月注册的二月再买东西不应该算在内.#写入会员基本信息INSERT INTO `大润发数据测试对比` (    门店ID,    会员姓名,    手机号码,    注册日期,    消费金额,        消费日期,    消费次数) SELECT    门店ID,     会员姓名,     手机号码,     注册日期,     消费金额,        消费日期 ,     消费次数FROM    base AS aWHERE    消费日期  >= '2019-01-17 00:00:00'AND  消费日期 <= '2019-01-30 23:59:59';/*随机一半人发券UPDATE `大润发数据测试对比` AS aINNER JOIN(SELECT *FROM`大润发2月第二周_copy`ORDER BYRAND(手机号码)LIMIT 0,49)bSET a.`是否发券` = '是'WHEREb.手机号码 = a.手机号码;*/#补充发券日期-- UPDATE `大润发数据测试对比` AS a-- SET a.`发券日期` = '2019-01-14'-- WHERE--     a.`是否发券` = '是';#写入T+7复购金额UPDATE `大润发数据测试对比` AS aSET a.`T+7消费金额` = (    SELECT        ROUND(SUM(b.real_pay) / 10000, 2) AS 累计消费金额    FROM        arm_changsha.goods_sales AS b    LEFT JOIN arm_changsha.ms_member_def AS c ON c.id = b.member_id    WHERE        c.mobile = a.手机号码    AND b.create_date >= '2019-01-31 00:00:00'    AND b.create_date <= '2019-02-13 23:59:59'    AND b.sales_type = '1'    GROUP BY        b.member_id);#写入T+7购买次数UPDATE `大润发数据测试对比` AS aSET a.`T+7消费次数` = (    SELECT        COUNT(DISTINCT b.sales_id)    FROM        arm_changsha.goods_sales_detail AS b    LEFT JOIN arm_changsha.goods_sales AS d ON d.id = b.sales_id    LEFT JOIN arm_changsha.ms_member_def AS c ON c.id = d.member_id    WHERE        c.mobile = a.手机号码    AND b.create_date >= '2019-02-14 00:00:00'    AND b.create_date <= '2019-02-20 23:59:59'    AND d.sales_type = '1');#写入T+14复购金额UPDATE `大润发数据测试对比` AS aSET a.`T+14消费金额` = (    SELECT        ROUND(SUM(b.real_pay) / 10000, 2) AS 累计消费金额    FROM        arm_changsha.goods_sales AS b    LEFT JOIN arm_changsha.ms_member_def AS c ON c.id = b.member_id    WHERE        c.mobile = a.手机号码    AND b.create_date >= '2019-02-14 00:00:00'    AND b.create_date <= '2019-02-27 23:59:59'    AND b.sales_type = '1'    GROUP BY        b.member_id);#写入T+14购买次数UPDATE `大润发数据测试对比` AS aSET a.`T+14消费次数` = (    SELECT        COUNT(DISTINCT b.sales_id)    FROM        arm_changsha.goods_sales_detail AS b    LEFT JOIN arm_changsha.goods_sales AS d ON d.id = b.sales_id    LEFT JOIN arm_changsha.ms_member_def AS c ON c.id = d.member_id    WHERE        c.mobile = a.手机号码    AND b.create_date >= '2019-02-14 00:00:00'    AND b.create_date <= '2019-02-27 23:59:59'    AND d.sales_type = '1');#写入T+30复购金额UPDATE `大润发数据测试对比` AS aSET a.`T+30消费金额` = (    SELECT        ROUND(SUM(b.real_pay) / 10000, 2) AS 累计消费金额    FROM        arm_changsha.goods_sales AS b    LEFT JOIN arm_changsha.ms_member_def AS c ON c.id = b.member_id    WHERE        c.mobile = a.手机号码    AND b.create_date >= '2019-02-14 00:00:00'    AND b.create_date <= '2019-03-15 23:59:59'    AND b.sales_type = '1'    GROUP BY        b.member_id);#写入T+30购买次数UPDATE `大润发数据测试对比` AS aSET a.`T+30消费次数` = (    SELECT        COUNT(DISTINCT b.sales_id)    FROM        arm_changsha.goods_sales_detail AS b    LEFT JOIN arm_changsha.goods_sales AS d ON d.id = b.sales_id    LEFT JOIN arm_changsha.ms_member_def AS c ON c.id = d.member_id    WHERE        c.mobile = a.手机号码    AND b.create_date >= '2019-02-14 00:00:00'    AND b.create_date <= '2019-03-15 23:59:59'    AND d.sales_type = '1');

mysql 临时表添加.以及操作案例.

其实最后选取临时表时.直接写字段就好.不用那么麻烦. 说到底还是语法基础太弱.常识都不知道.

 

转载于:https://www.cnblogs.com/sakura3/p/10421135.html

你可能感兴趣的文章
C#解决StatusStrip控件上的项目不能靠右对齐的问题
查看>>
算法导论之最大子段和
查看>>
走进webpack(1)--环境拆分及模块化
查看>>
终于还是开了个博客~
查看>>
转置的好用的cuda程序
查看>>
接口加密测试
查看>>
如何给30台centos7服务器分别增加相同的用户
查看>>
Android -- DecorView
查看>>
如何测试一个登陆界面
查看>>
Socket通信过程中环形缓冲区应用
查看>>
spring mvc controller间跳转 重定向 传参
查看>>
sqlserver: 使用While 示例
查看>>
Luogu4827 Crash的文明世界 组合、树形DP
查看>>
Luogu4705 玩游戏 分治FFT
查看>>
CozyRSS开发记录6-继续补全订阅内容栏
查看>>
gdb调试SAPI方式的php
查看>>
python Queue模块
查看>>
最近的一些感想
查看>>
SQL查询今天、昨天、7天内、30天【转】
查看>>
Python 2.6 安装wxPython后提示"64.....32"错误解决办法
查看>>