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. 第二十一篇:spring怎么做缓存

     项目背景:你可能遇情景:1.一个做统计的页面,每次刷新需要调接口做查询 ,是联表查询,查出来的数据还需要做一些计算或者加工,不算页面上的图表插件,刷新一次,延迟个几秒钟才出的来2. 一个统计接口如此 ...

  2. shell脚本,循环的记录

    ######################################################################### # File Name: showlogged.sh ...

  3. C++头文件记得加#pragma once

    C++头文件记得加#pragma once不然可能会导致重定义类

  4. linux普通用户无法登录mysql

    一.前言 本帖方法只适用于普通用户无法登录,但root用户可以登录的情况. 今天将war包放入linux后,运行报错,经过检查发现是数据库连接不上.奇怪的是,用户名和密码都是正确的,所以有了以下发现. ...

  5. struts2文件上传,文件类型 allowedTypes对应

    '.a' : 'application/octet-stream', 2 '.ai' : 'application/postscript', 3 '.aif' : 'audio/x-aiff', 4 ...

  6. [CF587-F]WI-FI

    显然DP题... f[i][0]表示这个点不装路由器,f[i][1]表示装路由器 转移也很简单,在前面一段区间找最小值就好了 但是直接转移是$O(n*k)$的,会T掉 大佬说这个东西有单调性,但是菜鸡 ...

  7. html-圣杯布局

    1.两边固定 当中自适应 2.当中列要完整显示 3.当中列要优先加载 浮动: 搭建完整的布局框架 margin 为赋值:调整旁边两列的位置(使三列布局到一行上) 使用相对定位:调整旁边两列的位置(使两 ...

  8. 阿里云容器服务通过LoadBalancer暴露IPv6服务

    背景: IPv4地址已接近枯竭,被誉为下一代互联网技术的IPv6成为新的“全球互联网门牌号”,它可以让地球上的每一粒沙子都拥有地址.当下,各国都在加速推进下一代互联网的部署,工信部也互联网服务商提出了 ...

  9. ThinkPHP支持模型的分层

    ThinkPHP支持模型的分层 ,除了Model层之外,我们可以项目的需要设计和创建其他的模型层. 大理石平台支架 通常情况下,不同的分层模型仍然是继承系统的\Think\Model类或其子类,所以, ...

  10. fetchSql是3.2.3新增的连贯操作方法,用于直接返回SQL而不是执行查询。

    fetchSql是3.2.3新增的连贯操作方法,用于直接返回SQL而不是执行查询. 例如: $result = M('User')->fetchSql(true)->find(1); 输出 ...