
这次要记录的是昨天客户找我要一个关于注册用户年龄段,性别分布情况,当时把我卡住了,等到解决了才发现其实这个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,关系数据库管理系统) 应用软件。
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)