设为首页 收藏本站
查看: 723|回复: 0

[经验分享] 年龄层统计SQL-Java乐园

[复制链接]

尚未签到

发表于 2018-10-20 06:33:58 | 显示全部楼层 |阅读模式
  -- 处理名单丢失
  SELECT
  u.`user_id` u_userid,
  o.`user_id` o_userid,
  o.*
  FROM
  `tb_gh_orders` o
  LEFT JOIN `tb_gh_user` u
  ON o.`user_id` = u.`user_id`
  WHERE o.`course_id` = 128
  AND o.`order_state` = '1' ;
  -- 年龄段统计
  SELECT
  T1.*,
  CONCAT(LEFT (T1.C1 / T2.C2 * 100, 5), '%') P
  FROM
  (SELECT CASE WHEN SUBSTRING(U.ID_NUM, 7, 3)='' THEN '无身份证' ELSE
  CONCAT(SUBSTRING(U.ID_NUM, 9, 1), '0后') END AGE,
  SUBSTRING(U.ID_NUM, 7, 3) YEAR1,
  COUNT(*) C1
  FROM
  TB_GH_USER U
  GROUP BY SUBSTRING(U.ID_NUM, 7, 3)) T1,(SELECT COUNT(*) C2 FROM TB_GH_USER U2) T2
  ---------------CRM年龄层统计
  SELECT T1.*,CONCAT(LEFT (T1.C1 / T2.C2 * 100, 5), '%') P FROM
  (SELECT CASE
  WHEN tt.age BETWEEN 1 AND 10 THEN '1-10'
  WHEN tt.age BETWEEN 11 AND 20 THEN '11-20'
  WHEN tt.age BETWEEN 21 AND 30 THEN '21-30'
  WHEN tt.age BETWEEN 31 AND 40 THEN '31-40'
  WHEN tt.age BETWEEN 41 AND 50 THEN '41-50'
  WHEN tt.age BETWEEN 51 AND 60 THEN '51-60'
  WHEN tt.age BETWEEN 61 AND 70 THEN '61-70'
  WHEN tt.age BETWEEN 71 AND 80 THEN '71-80'
  WHEN tt.age BETWEEN 81 AND 90 THEN '81-90'
  END year_range,
  COUNT(*) C1
  FROM (SELECT TIMESTAMPDIFF(YEAR, u.`birthDate`, CURDATE()) age,u.birthDate,o.`org_name`
  FROM `tb_crm_businessuser` u,`tb_crm_organ` o WHERE u.`organid`=o.`org_id`  ) tt
  WHERE tt.age IS NOT NULL
  GROUP BY year_range ) T1
  ,(SELECT
  COUNT(*) C2
  FROM
  tb_crm_businessuser U2 WHERE u2.birthDate IS NOT NULL) T2
  ---------------CRM按机构统计
  SELECT tt.org_name,
  COUNT(*) orgtotal,
  CONCAT(LEFT (SUM(CASE WHEN age BETWEEN 11 AND 20 THEN 1 ELSE 0 END )/COUNT(*)*100, 5), '%') AS 'p11-20',
  CONCAT(LEFT (SUM(CASE WHEN age BETWEEN 21 AND 30 THEN 1 ELSE 0 END )/COUNT(*)*100, 5), '%') AS 'p21-30',
  CONCAT(LEFT (SUM(CASE WHEN age BETWEEN 31 AND 40 THEN 1 ELSE 0 END )/COUNT(*)*100, 5), '%') AS 'p31-40',
  CONCAT(LEFT (SUM(CASE WHEN age BETWEEN 41 AND 50 THEN 1 ELSE 0 END )/COUNT(*)*100, 5), '%') AS 'p41-50',
  CONCAT(LEFT (SUM(CASE WHEN age BETWEEN 51 AND 60 THEN 1 ELSE 0 END )/COUNT(*)*100, 5), '%') AS 'p51-60',
  CONCAT(LEFT (SUM(CASE WHEN age BETWEEN 61 AND 70 THEN 1 ELSE 0 END )/COUNT(*)*100, 5), '%') AS 'p61-70',
  CONCAT(LEFT (SUM(CASE WHEN age BETWEEN 71 AND 80 THEN 1 ELSE 0 END )/COUNT(*)*100, 5), '%') AS 'p71-80',
  SUM(CASE WHEN age BETWEEN 11 AND 20 THEN 1 ELSE 0 END ) AS '11-20',
  SUM(CASE WHEN age BETWEEN 21 AND 30 THEN 1 ELSE 0 END ) AS '21-30',
  SUM(CASE WHEN age BETWEEN 31 AND 40 THEN 1 ELSE 0 END ) AS '31-40',
  SUM(CASE WHEN age BETWEEN 41 AND 50 THEN 1 ELSE 0 END ) AS '41-50',
  SUM(CASE WHEN age BETWEEN 51 AND 60 THEN 1 ELSE 0 END ) AS '51-60',
  SUM(CASE WHEN age BETWEEN 61 AND 70 THEN 1 ELSE 0 END ) AS '61-70',
  SUM(CASE WHEN age BETWEEN 71 AND 80 THEN 1 ELSE 0 END ) AS '71-80'
  FROM (SELECT TIMESTAMPDIFF(YEAR, u.birthDate, CURDATE()) age,u.birthDate,o.org_name
  FROM tb_crm_businessuser u,tb_crm_organ o WHERE u.organid=o.org_id AND u.`birthDate` IS NOT NULL ) tt
  GROUP BY tt.org_name


运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-623775-1-1.html 上篇帖子: 数据库 之 SQL语句构成和分类 下篇帖子: v$sql-ORACLE
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表