文章目录

  • 一、涉及业务介绍
  • 二、涉及业务数据及字典
  • 三、需求与代码实现
  • **扩展认识**

一、涉及业务介绍

  某头部汽车新零售企业立足下沉市场,通过网络渠道和品牌广告获取大量汽车销售线索,并借助大量地面销售在线下门店完成客户成交孵化,该企业最终依靠自建供应链建立的护城河来赚取采购差价,同时也通过给客户提供低首付金融租赁产品来赚取金融费用。该公司商业分析师需要从数据层面去驱动投放团队去做效率优化,以助力业务正常健康发展。
头部汽车:top级,行业排名靠前
下沉市场:三四线城市及以下消费市场
网络渠道:汽车之家、懂车帝、易车等
品牌广告:微信朋友圈、微博、抖音
低首付金融租赁产品:车贷

二、涉及业务数据及字典

数据库:business_sample_car_retail
涉及表: clue_day,order_day

线索表clue_day

column Type Comment
clue_id bigint 线索id
city_id bigint 用户城市id(线索产生时的城市)
deal_city_id bigint 交易城市id
district_id bigint 区县id
cc_id bigint 客户id
guid varchar 设备id
customer_phone varchar 客户手机号(密文)
ca_s varchar 一级渠道(网络渠道、品牌广告)
ca_n varchar 二级渠道(具体平台抖音、微博、微信等)
ca_s_new varchar 归因后一级渠道(记录最近一次渠道信息)
ca_n_new varchar 归因后二级渠道
clue_platform varchar 电销侧来源平台
cainfo varchar 附加信息
platform varchar (手机wap端/pc端)
newcar_product_type integer 新车产品类型,0-4s店带看,1-付一成,2是回访,3是在线客服,4是400,-250战败工单
is_high_quality integer 是否高质量线索标识
is_valid integer 线索是否有效
is_new integer 是否新线索
clue_created_at varchar 创建时间

成交订单表order_day

column Type Comment
order_id int 订单id
customer_name string 客户姓名
phone string 电话,加密
city_id int 城市ID
brand_id int 品牌ID
chexi_id int 车系ID
chexing_id int 车型ID
sku_id int sku_id
vin string 车辆vin码
engine_num string 发动机号
hegezheng_pic string 合格证照片
apply_id string 金融支付id
color int 购买车型颜色
created_at string 创建时间(成交订单时间)
clue_id int 线索ID
saler_id int 销售id
downpayment_paid_time string 首付完成时间
finished_time string 订单完成时间

创建数据库、数据表

#创建数据库
create database business_sample_car_retail character set utf8;#创建数据表,clue_day
create table clue_day (clue_id int (8),city_id int (3),deal_city_id int (3),cc_id int (9),guid varchar (36),customer_phone varchar (26),ca_s varchar (18),ca_n varchar (13),ca_s_new varchar (12),ca_n_new varchar (13),clue_platform varchar (23),cainfo varchar (318),platform varchar (5),newcar_product_type int (1),is_high_quality int (1),is_valid int (1),is_new int (1),clue_created_at datetime,district_id int (4)
);#创建数据表,order_day
create table order_day(created_at datetime,order_id int(5),clue_id int(10),city_id int(5),chexing_id int(10),sku_id int(5),vin varchar(46),engine_num varchar(26)
);

三、需求与代码实现

  • 需求1:查询线索(二级渠道jdsc)后续转化成交车型详情
    解析:线索和渠道 --> clue表
        成交购买的车型 --> order表
        需要进行clue表和order表的关联查询(使用内连接进行关联查询)
    条件:二级渠道jdsc
    返回结果:线索id、线索所属渠道名称、购买的车型
#隐式内连接
select c.clue_id,ca_n,chexing_id
from clue_day c,order_day o
where c.clue_id = o.clue_id and ca_n = 'jdsc';#显式内连接
select c.clue_id,ca_n,chexing_id
from clue_day c inner join order_day o on c.clue_id = o.clue_id
where ca_n = 'jdsc';
  • 需求2:统计所有渠道(按照二级渠道)的转化率
    解析:转化率=成单数(order表)/线索数(clue表)
        渠道 --> clue表
#左外连接
select ca_n,count(o.clue_id)/count(c.clue_id) '转化率'
from clue_day c left join order_day o on c.clue_id = o.clue_id
group by ca_n;
  • 需求3:查询各城市线索数并计算所有城市线索总数
    解析:城市、线索
#方法一
select city_id,count(*)
from clue_day
group by city_id;
select count(clue_id) from clue_day;#方法二
select city_id,count(clue_id)
from clue_day
group by city_id;
select count(clue_id) from clue_day;#方法三(合并查询)
select city_id,count(clue_id) as clue_count from clue_day group by city_id
union all
select '总计' as city_id,count(clue_id) from clue_day;
  • 需求4:找出优质渠道,作重点投入
    解析:优质渠道(以二级渠道为基准)
        该二级渠道内平均转化周期<整体平均转化周期
        该二级渠道的线索量>各二级渠道平均线索量
        转化周期 = 成单日期 - 线索创建日期

各二级渠道内平均转化周期,各二级渠道的线索量

select ca_n,avg(datediff(created_at,clue_created_at)),count(o.clue_id)
from clue_day c left join order_day o on c.clue_id = o.clue_id clue_num
where o.created_at is not null and c.clue_created_at is not null
group by ca_n;

各二级渠道内平均线索量,其中ceil()为向上取整

#方法一
select ceil(avg(clue_num)) from(select ca_n,avg(datediff(created_at,clue_created_at)),count(o.clue_id) clue_numfrom clue_day c left join order_day o on c.clue_id = o.clue_id where o.created_at is not null and c.clue_created_at is not nullgroup by ca_n
) a;
#方法二
#with··· as··· 在一个sql中提取公共的子查询
with ca_value as(select ca_n,avg(datediff(created_at,clue_created_at)),count(o.clue_id) clue_num from clue_day c left join order_day o on c.clue_id = o.clue_idwhere o.created_at is not null and c.clue_created_at is not nullgroup by ca_n
)
select ceil(avg(clue_num)) from ca_value;

整体线索平均转化周期

select avg(datediff(created_at,clue_created_at))
from clue_day c left join order_day o on c.clue_id = o.clue_id
where o.created_at is not null and c.clue_created_at is not null

需求查询,以上代码的整合

with ca_value as(select ca_n,avg(datediff(created_at,clue_created_at)) avg_time,count(o.clue_id) clue_num from clue_day c left join order_day o on c.clue_id = o.clue_idwhere o.created_at is not null and c.clue_created_at is not nullgroup by ca_n
)
select ca_n,avg_time from ca_value
# 该二级渠道内平均转化周期<整体平均转化周期
where avg_time <(select avg(datediff(created_at,clue_created_at))from clue_day c left join order_day o on c.clue_id = o.clue_idwhere o.created_at is not null and c.clue_created_at is not null)
#该二级渠道的线索量>各二级渠道平均线索量and clue_num >(select ceil(avg(clue_num)) from ca_value);

扩展认识

数学函数

函数 作用
abs(x) 返回x的绝对值
floor(x),ceil(x),round(x) floor向下取整,ceil向上取整,round四舍五入
rand() 返回0~1的随机数
pi() 返回圆周率的值
mod(x.y) 返回x除以y以后的余数

字符串函数

函数 作用
concat(s1,s2···) 将字符串拼接,连接为一个字符串
left(s,n) 返回左起,从字符串s开始的n个字符
trim(S) 移除掉字串中s的字头或字尾处空格
replace(s,s1,s2) 用字符串s2替代字符串s重的字符串s1
substring(s,n,len) , mid(s,n.len) 截取字符串s中第n个位置开始,长度为len的字符串
reverse(s) 将字符串s的顺序翻转过来

日期时间函数

函数 作用
curdate() 当前日期
curtime() 当前时间
now() 当前日期时间
month(curdate() ) 获取月份

条件判断函数

函数 作用
if (expo,v1,v2) 表达式成立,执行v1,否则执行v2
case when 用于计算条件列表并返回多个可能结果表达式之一

其中,case when的代码格式

case when 条件1 then 结果1when 条件2 then 结果2when ···  then ···
else 结果n+1
end

SQL-DAY 7(SQL查询语句的应用案例:汽车新销售)相关推荐

  1. SQL学习笔记——Select查询语句

    使用数据库和表的主要目的是存储数据以便在需要时进行检索.统计或组织输出. SELECT 语句,它是 T-SQL 的核心.从数据库中检索行,并允许从一个或多个表中选择一个 或多个行或列. 虽然 SELE ...

  2. sql server数据库 T-SQL查询语句(基本篇)

    接上篇sql server 数据库增删改查(库与表) 删除数据 delete 表名 where 查询条件 T-sql查询语句 T-sql语句 增强版的sql语句,增加了更多的函数应用,流程控制,变量说 ...

  3. SQL语言中的查询语句整理

    1. 查询语句的介绍: 本篇主要介绍sql语句里的查询语句,这其中包括了查询语句中的子内容,也就是拓展的内容,这些内容代入到查询语句中将会有更多的反应. 2. 查询语句: FROM命令: SELECT ...

  4. SQL:多表查询语句(嵌套子查询,多表连接)操作实例

    一.SQL Server多表查询,包括连接操作和嵌套子查询 背景知识: 一.连接:分成内连接和外连接,内连接相当于取交集,外连接相当于取并集 二.嵌套子查询:连接操作浪费资源,使用嵌套子查询可以避免连 ...

  5. 【SQL】MySQL的查询语句

    文章目录 SELECT语句 WHERE子句 JOIN语句 GROUP BY和HAVING ORDER BY LIMIT 其他关键字 MySQL是一种广泛使用的关系型数据库管理系统,它被广泛地应用于各种 ...

  6. SQL数据库的T-SQL 查询语句

    T-SQL 查询语句 一.简单查询 1.列出全部学生的信息. SELECT * FROM 学生表 2.列出软件测试专业全部学生的学号及姓名. SELECT 学号,姓名 FROM 学生表 WHERE 专 ...

  7. sql server 2005 (select查询语句用法)

    select * from userInfo where age like '2[25]' 功能:查询userInfo表中age字段,所有以2开头,且第二位是2或5的记录. select * from ...

  8. ElasticSearch-JDBC驱动 像使用SQL一样使用ElasticSearch查询语句

    SQL JDBC 此功能是实验性的,可在将来的版本中完全更改或删除.弹性将采取尽力而为的方法来解决任何问题,但实验性功能不受官方GA功能的支持SLA的约束. Elasticsearch的SQL jdb ...

  9. SQL Server实现简单查询语句

    回顾: 打开数据服务 net start mssqlserver 关闭数据库服务 net stop mssqlserver 新增数据: insert into -- 新增到 Student -- 表 ...

最新文章

  1. openssl算法 —— 利用openssl进行BASE64编码解码、md5/sha1摘要、AES/DES3加密解密
  2. 关于新版SDK报错You need to use a Theme.AppCompat theme的两种解决办法 - 转
  3. Redhat中设置环境变量PATH
  4. linux查看cpu占用最多的进程,Linux下查看占用CPU资源最多的几个进程
  5. Python os.system(command),这样执行的command命令,和主程序是异步的吗?
  6. Android UI进阶之旅3 Material Design之侧滑菜单的两种实现
  7. 在secureCRT上设置常用的快捷输出按钮栏
  8. c#设计模式之简单工厂
  9. MATLAB 数据显示格式
  10. python for ArcGIS 绘制沈阳市板块地图
  11. php es6写法,深入浅出es6模板字符串
  12. 《Unity资源加密》(Yanlz+Unity+XR+资源加密+立钻哥哥+==)
  13. SPI FLASH测试
  14. armorGame的像素块级的3D 游戏--酷
  15. c++倒序输出一个四位整数
  16. 正确使用GCC inline assemble 中的 clobber
  17. 模拟登陆广西科技大学正方教务系统
  18. 电子英汉词典c语言设计报告,C语言课程设计——电子英汉词典汇编.doc
  19. oracle 奇葩问题集合
  20. 【Java项目实战】MyEclipse10破解方法

热门文章

  1. BZOJ 1050 [HAOI2006]旅行comf(最小生成树)
  2. 电视剧的收视排行榜(Python)
  3. web scraper
  4. 微信公众号-模板消息管理
  5. Scrm营销如何自动化打标签
  6. oa项目经验描述_简历中项目经验模版
  7. 阿里六面(总结他人事迹)
  8. vue-json-editor json编辑器
  9. mysql notifier什么_MySQLNotifier这个东西有什么作用?
  10. vue table表格中身份证隐藏中间几位