mysql计算表中性别为女的年龄之和

mysql计算表中性别为女的年龄之和,第1张

终于暂时闲下来了,一个项目加班加点一年多,前面太忙就顾不上博客了,慢慢的就懈怠了,最近算是暂时闲下来了,项目已经验收进入后期维护阶段,每天空余的时间也多了,想重新拾起博客,不求写什么高深的东西,以后就尽量就每次自己遇到的问题,并把解决方法在这里记录一下,可能显得很简单不适合他人看,但是就当自己日记一样记录还是不错的,因为在这个项目里我有好几次遇到类似的以前解决过的问题,却还是要看了自己当初的百度提问才得以解答,还是要记录下比较好。

这次要记录的是昨天客户找我要一个关于注册用户年龄段,性别分布情况,当时把我卡住了,等到解决了才发现其实这个sql我大二考试的时候就写过,只是把以前是班级现在是年龄,以前是sqlserver现在是mysql而已,话不多说,解决过程如下:

首先,是我们数据库的当前内容:

然后我们要给他最终统计成三个字段:年龄男女

需要的最终统计结果图如下:

步骤1:我们要把先他统计成 年龄,性别 的结果

sql:

SELECT DATE_FORMAT(FROM_DAYS(TO_DAYS(NOW())-TO_DAYS(birthday)), '%Y')+0 AS age,t1.sex

FROM test t1

ORDER BY age

其结果如下:

步骤2:将上图的结果作为临时表,再统计成最终结果图

sql:

SELECT CONCAT(age,'岁') AS '年龄',SUM(CASE WHEN sex='男' THEN 1 ELSE 0 END) AS '男',SUM(CASE WHEN sex='女' THEN 1 ELSE 0 END) AS '女'

FROM

(

SELECT DATE_FORMAT(FROM_DAYS(TO_DAYS(NOW())-TO_DAYS(birthday)), '%Y')+0 AS age,t1.sex

FROM test t1

ORDER BY age

) AS tt

GROUP BY age

报错是因为 没有这个方法

可能的原因是 1 方法是自定义的 你当前数据库中没有写入这个方法

2 这个方法是官方的但是 版本号不同 这个方法被取消了

解决的方法 1 写入这个方法调用 2 更换 对应版本的 mysql

语句为:SELECT FLOOR(DATEDIFF(CURRENT_DATE,'1984-2-16')/356)

常用sql对数据库 *** 作:

连接数据库命令: mysql -u root -p密码

创建数据库:create database dbname

查看所有的数据库:show databases

删除数据库: drop database dbname

切换数据库:use dbname

知识拓展:

MySQL是一个关系型数据库管理系统,由瑞典MySQL AB 公司开发,目前属于 Oracle 旗下产品。MySQL 是最流行的关系型数据库管理系统之一,在 WEB 应用方面,MySQL是最好的 RDBMS (Relational Database Management System,关系数据库管理系统) 应用软件。


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/zaji/8633429.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-04-19
下一篇2023-04-19

发表评论

登录后才能评论

评论列表(0条)

    保存