mysql学习教程参考:https://www.w3school.com.cn/sql/index.asp
where 与 having实例运用参考:https://www.2cto.com/database/201712/706595.html
 
 
--可选认证中至少有一项通过的用户占比,直接计算
select
 count(distinct case when c.auth_type='可选' and c.auth_status in ('已认证', '已过期') then c.user_id end) as pass_cnt
,count(distinct c.user_id) as tot_cnt
,count(distinct case when c.auth_type='可选' and c.auth_status in ('已认证', '已过期') then c.user_id end)/count(distinct c.user_id) per_cnt
from(
 select a.*,ath.auth_item,ath.auth_type,ath.auth_status,ath.auth_suc_time
  from(
   select laf.user_id,laf.main_order_id,laf.loan_apply_submit_time
   from pl_performance_loan_apply_fact laf
   left join pl_customer_basic_info usb on laf.user_id=usb.user_id
   where laf.reborrow_status = '首借' and usb.merchant_no='DuitSayang'
      and date(laf.loan_apply_submit_time)>='2019-08-03' and date(laf.loan_apply_submit_time)<='2019-08-05'
) a
left join pl_customer_auth_info ath on a.user_id = ath.user_id
) c
;
 
 
--找出未通过认证的用户,巧用group by,having 
select a.user_id,a.phone
  from(
   select laf.user_id,laf.main_order_id,laf.loan_apply_submit_time,usb.phone
   from pl_performance_loan_apply_fact laf
   left join pl_customer_basic_info usb on laf.user_id=usb.user_id
   where laf.reborrow_status = '首借' and usb.merchant_no='DuitSayang'
      and date(laf.loan_apply_submit_time)>='2019-08-03' and date(laf.loan_apply_submit_time)<='2019-08-05'
) a
left join pl_customer_auth_info ath on a.user_id = ath.user_id
group by a.user_id,a.phone
having max( case when ath.auth_type='可选' and ath.auth_status in ('已认证', '已过期') then 1 else 0 end) = 0
 
--注册未申请的phone

# 9月注册未申贷用户电话号码

select concat('\'',usb.phone) as phone
from (
select phone, user_id from pl_customer_basic_info
where substr(regist_time,1,7)='2019-09'
) usb
left join pl_performance_loan_apply_fact laf on usb.user_id=laf.user_id
group by usb.phone
having max(case when laf.user_id is not null then 1 else 0 end) = 0
;

 
 

巧用having的更多相关文章

  1. [MySQL性能优化系列]巧用索引

    1. 普通青年的索引使用方式 假设我们有一个用户表 tb_user,内容如下: name age sex jack 22 男 rose 21 女 tom 20 男 ... ... ... 执行SQL语 ...

  2. [ACM训练] ACM中巧用文件的输入输出来改写acm程序的输入输出 + ACM中八大输入输出格式

    ACM中巧用文件的输入输出来改写acm程序的输入输出 经常有见大神们使用文件来代替ACM程序中的IO,尤其是当程序IO比较复杂时,可以使自己能够更专注于代码的测试,而不是怎样敲输入. C/C++代码中 ...

  3. TSql 巧用Alt 键

    1,查看表的信息 在TSql 编辑器中,选中一个表,如图 点击Alt+F1,就可以查看表的属性定义 2,使用alt批量插入逗号 在Tsql中使用 in 子句,在(value_List)列表中,经常有很 ...

  4. 前端工程师技能之photoshop巧用系列第三篇——切图篇

    × 目录 [1]切图信息 [2]切图步骤 [3]实战 前面的话 前端工程师除了使用photoshop进行测量之外,更重要的是要使用该软件进行切图.本文是photoshop巧用系列的第三篇——切图篇 切 ...

  5. 前端工程师技能之photoshop巧用系列第二篇——测量篇

    × 目录 [1]测量信息 [2]实战 [3]注意事项 前面的话 前端工程师使用photoshop进行的大量工作实际上是测量.本文是photoshop巧用系列第二篇——测量篇 测量信息 在网页制作中需要 ...

  6. 前端工程师技能之photoshop巧用系列第一篇——准备篇

    × 目录 [1]作用 [2]初始化 [3]常用工具[4]快捷键 前面的话 photoshop是前端工程师无法回避的一个软件,这个软件本身很强大,但我们仅仅需要通过这个工具来完成基本的切图工作即可.本文 ...

  7. 巧用CSS实现分隔线

    下面是几种简单实现分隔线的方法,个人比较喜欢第二种,我也给出了最后第五种比较2的写法,请大家拍砖,或者提供其他好的方法. 单个标签实现分隔线: 点此查看实例展示 .demo_line_01{ padd ...

  8. iOS开发之巧用Block和代理方法结合来传值

    好久没写技术博客了,因为996的工作周期已经持续好几个月了.每天晚上回家都没有太多精力学习很多其他的东西,而且很多时候是接着完善工作的项目的模块开发.所以博客停歇了这么久,更新率也低了不少,今天补充一 ...

  9. jquery 巧用json传参

    JavaScript代码,巧用JSON传参数function AddComment(content) { var comment = {}; comment.threadId = $("#s ...

  10. 在Sqlserver下巧用行列转换日期的数据统计

    在Sqlserver下巧用行列转换日期的数据统计 前言 在SQLSERVER 中有很多统计函数的基础语法,有使用Group By 或 partition by 后配合Sum,Count(*) 等用法. ...

随机推荐

  1. HTML引入CSS的方法

    1.嵌入式 通过<style>标记,来引入CSS样式. 语法格式:<style type = “text/css”></style> 提示:<style> ...

  2. mysql初次使用

  3. springcloud ribbon Finchley 版本,自定义算法

    引用上一个项目,在原有的基础上进行更改,添加springcloud的内荣. eureka-server 和上一个springcloud eureka的一样,没有改动. 添加cloud-api pack ...

  4. Netstat- Linux必学的60个命令

    1.作用 检查整个Linux网络状态. 2.格式 netstat [-acCeFghilMnNoprstuvVwx][-A][--ip] 3.主要参数 -a--all:显示所有连线中的Socket. ...

  5. C++: Basic knowledge Part 1

    1.在 C++ 程序中调用被 C 编译器编译后的函数,为什么要加 extern “C”? 首先,extern 是 C/C++ 语言中表明函数和全局变量作用范围的关键字,该关键字告诉编译器,其声明的函数 ...

  6. Ubuntu clion下载及激活

    1.下载 方法:去官网下载clion  https://www.jetbrains.com/clion/download/#section=linux 或者使用我上传的百度网盘链接: https:// ...

  7. Ionic3 demo TallyBook 实例1

    1.创建项目 ionic start  TallyBook  blank  创建一个空的项目 ionic cordova  platform  add android   添加andorid平台 io ...

  8. 【BZOJ4561】[JLoi2016]圆的异或并

    传送门 把圆拆成上下两个圆弧,因为不存在相交关系,圆弧直接的上下关系是不变的. 用set维护这些圆弧,插入的时候upper_bound一下,如果找到的是上圆弧,就是我外面的第一个圆,否则我外面的第一个 ...

  9. 软件-版本控制器-VisualSVN:VisualSVN

    ylbtech-软件-版本控制器-VisualSVN:VisualSVN VisualSVN 1.返回顶部   2.返回顶部   3.返回顶部   4.返回顶部   5.返回顶部 0. https:/ ...

  10. Freemaker 开发学习笔记

    Freemaker 是一个强大的模板引擎,相比 velocity 而言,其强大的过程调用.递归和闭包回调功能让 freemaker 可以完成几乎所有我们所想的功能.从个人看法而言,freemaker ...