日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > 数据库 >内容正文

数据库

年龄层统计SQL

發布時間:2023/12/19 数据库 22 豆豆
生活随笔 收集整理的這篇文章主要介紹了 年龄层统计SQL 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

-- 處理名單丟失

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


轉載于:https://blog.51cto.com/hebinteng/1971348

總結

以上是生活随笔為你收集整理的年龄层统计SQL的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。