摘要:假设表为会员信息表,需要统计男性会员年龄各阶段的出现的人数会员名称性别,男女年龄假设现在数据库中有数据如下方法一说明利用划出个区间再利用函数将个区间分别返回一个列名方法二结果
假设a表为会员信息表,需要统计男性会员年龄各阶段的出现的人数
CREATE TABLE `a` ( `id` int(11) unsigned NOT NULL AUTO_INCREMENT, `name` varchar(255) NOT NULL DEFAULT "" COMMENT "会员名称", `sex` tinyint(1) unsigned NOT NULL DEFAULT "0" COMMENT "性别,1、男 2、女", `age` tinyint(3) unsigned NOT NULL DEFAULT "0" COMMENT "年龄", PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
假设现在数据库中有数据如下:
方法一:
SELECT ELT( INTERVAL (age, 0, 20, 30, 40), "1-20", "21-30", "31-40", "40+" ) AS age_area, COUNT(name) AS num FROM `a` WHERE sex = 1 GROUP BY ELT( INTERVAL (age, 0, 20, 30, 40), "1-20", "21-30", "31-40", "40+" );
说明:
利用 interval 划出4个区间
再利用 elt 函数将4个区间分别返回一个列名
方法二:
SELECT ( CASE WHEN age >= 1 AND age <= 20 THEN "1-20" WHEN age > 20 AND age <= 30 THEN "21-30" WHEN age > 30 AND age <= 40 THEN "31~40" ELSE "40+" END ) AS age_area, count(name) AS num FROM a WHERE sex = 1 GROUP BY ( CASE WHEN age >= 1 AND age <= 20 THEN "1-20" WHEN age > 20 AND age <= 30 THEN "21-30" WHEN age > 30 AND age <= 40 THEN "31~40" ELSE "40+" END );
结果:
文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。
转载请注明本文地址:https://www.ucloud.cn/yun/47757.html
摘要:查询执行的时间范围。该查询在本次分析中总的时间占比。查询对象第三部分每一种查询的详细统计结果由上图可见号查询的详细统计结果,最上面的表格列出了执行次数最大最小平均等各项目的统计。 查询mysql的操作信息 show status -- 显示全部mysql操作信息 show status like com_insert%; -- 获得mysql的插入次数; show status l...
摘要:个人博客地址方案项目背景在现在题库架构下,针对新购买的多道数据进行整合,不影响现有功能。数据切分尽量通过数据冗余或表分组来降低跨库的可能。 个人博客地址 https://www.texixi.com/2019/0... 方案 项目背景 在现在题库架构下,针对新购买的1300W多道数据进行整合,不影响现有功能。由于数据量偏多,需要进行数据的切分 目标场景 兼容旧的功能 对1300多W...
阅读 447·2021-11-24 09:39
阅读 2653·2021-11-23 10:06
阅读 844·2021-10-08 10:05
阅读 589·2019-08-30 10:49
阅读 1577·2019-08-29 14:08
阅读 1144·2019-08-29 12:48
阅读 3142·2019-08-26 14:04
阅读 3458·2019-08-26 13:50