进行分步骤计算
需要编写多个sql语句分步骤计算,每个sql语句可以理解为一个子查询
格式: (查询语句) 可以获取子查询语句的结果,把结果可以当成数据进行判断,或者当做一个新的表数据进行处理
1、创建数据表tb_member
create table tb_member
(
id int auto_increment primary key comment '用户编号',
name varchar(20) comment '用户姓名',
gender varchar(10) comment '用户性别',
birthday varchar(20) comment '出生日期',
address varchar(100) comment '用户住址',
email varchar(20) comment '用户邮箱',
create_time datetime comment '注册时间'
);
insert into tb_member(name, gender, birthday, address, email, create_time)
values ('陈莹', '女', '1987-07-14', '四川省', 'awu@hotmail.com', '2021/04/02 23:27:40'),
('陈阳', '男', '1998-06-26', '天津市', 'zcao@hotmail.com', '2022/04/21 14:26:26'),
('白娟', '男', '1988-10-25', '新疆维吾尔自治区', 'zhenglei@hotmail.com', '2022/02/15 04:30:17'),
('曹阳', '女', '1989-07-09', '湖南省', 'ideng@hotmail.com', '2024/01/04 11:16:40'),
('向瑜', '女', '1985-08-23', '内蒙古自治区', 'xiuyingliao@gmail.com', '2023/03/05 02:09:46'),
('刘丽娟', '女', '1988-08-19', '广西壮族自治区', 'juanhou@hotmail.com', '2023/05/23 20:36:47'),
('袁红', '女', '2000-01-04', '贵州省', 'xiaona@gmail.com', '2022/03/29 02:35:22'),
('王雪梅', '男', '1995-06-22', '江苏省', 'minfan@gmail.com', '2023/09/19 03:48:24'),
('崔瑞', '女', '1995-04-18', '江苏省', 'wei97@yahoo.com', '2022/09/29 01:17:31'),
('张丽', '男', '1990-10-17', '甘肃省', 'junyao@yahoo.com', '2023/12/10 01:45:35'),
('李兰英', '女', '1988-08-07', '吉林省', 'dhan@hotmail.com', '2022/08/19 04:57:27'),
('周娜', '男', '1987-02-21', '湖南省', 'yang33@gmail.com', '2024/01/16 02:23:42'),
('汪秀兰', '女', '1988-02-17', '云南省', 'leiguiying@yahoo.com', '2021/08/06 15:08:42'),
('李婷婷', '男', '1999-04-14', '香港特别行政区', 'fang46@hotmail.com', '2023/08/01 05:43:54'),
('罗小红', '女', '1983-03-28', '天津市', 'lifang@gmail.com', '2022/04/14 15:41:16'),
('潘坤', '女', '1992-06-12', '台湾省', 'dongxiulan@yahoo.com', '2023/10/06 09:31:06'),
('张建', '男', '1986-02-09', '贵州省', 'leihuang@hotmail.com', '2022/01/30 17:40:11'),
('许娜', '女', '1995-10-13', '重庆市', 'guiyingyin@gmail.com', '2024/01/23 09:55:53'),
('张秀荣', '女', '1994-06-15', '陕西省', 'zhonggang@gmail.com', '2023/10/24 16:34:02'),
('郭佳', '男', '1991-08-25', '河北省', 'pliao@yahoo.com', '2023/03/11 19:17:37'),
('杨兵', '男', '1993-11-13', '江苏省', 'hren@hotmail.com', '2022/09/10 23:31:34'),
('李桂香', '男', '1992-09-02', '黑龙江省', 'yongzheng@gmail.com', '2021/09/18 18:59:22'),
('柳琳', '男', '1997-05-09', '甘肃省', 'min73@gmail.com', '2022/10/08 22:03:36'),
('龚莉', '女', '1998-12-12', '河南省', 'xiulan59@yahoo.com', '2021/08/09 13:56:43'),
('张玲', '女', '1991-04-29', '四川省', 'xueyang@gmail.com', '2021/07/08 23:55:01'),
('林凤英', '女', '1989-07-05', '四川省', 'gang38@gmail.com', '2023/03/26 19:33:59'),
('武勇', '女', '1996-07-20', '河北省', 'gangfeng@hotmail.com', '2022/03/21 00:20:10'),
('阎红霞', '男', '1992-01-05', '上海市', 'uxia@hotmail.com', '2023/10/01 14:18:45'),
('张玉兰', '男', '1998-01-26', '甘肃省', 'uluo@gmail.com', '2022/05/26 16:27:18'),
('蒋明', '女', '1988-11-10', '吉林省', 'hzeng@hotmail.com', '2022/12/16 02:35:18'),
('牟晨', '男', '1984-06-25', '西藏自治区', 'gang61@yahoo.com', '2023/09/18 21:12:21'),
('宋颖', '男', '1991-01-05', '安徽省', 'fang34@yahoo.com', '2021/09/22 19:55:47'),
('郑畅', '女', '1987-03-05', '河北省', 'dbai@gmail.com', '2022/10/31 05:20:18'),
('蒋晶', '女', '1983-07-08', '河北省', 'ndeng@gmail.com', '2024/01/24 11:16:40'),
('向玉英', '男', '1991-12-01', '广东省', 'mindeng@hotmail.com', '2022/09/15 17:00:53'),
('储凯', '男', '1983-09-22', '天津市', 'yanchang@hotmail.com', '2021/11/19 23:26:54'),
('马平', '女', '1984-07-16', '湖南省', 'wanjie@yahoo.com', '2021/07/26 19:49:49'),
('阮凯', '女', '1988-10-24', '天津市', 'kangfang@yahoo.com', '2023/09/30 15:55:13'),
('郑瑜', '女', '1994-12-26', '贵州省', 'ping71@hotmail.com', '2023/06/20 12:39:15'),
('陈英', '男', '1990-07-05', '黑龙江省', 'leisun@yahoo.com', '2022/12/26 20:26:34'),
('李欣', '男', '1996-01-22', '河南省', 'chaotian@gmail.com', '2023/01/20 07:59:52'),
('黎秀梅', '男', '1990-02-20', '云南省', 'ahu@gmail.com', '2023/03/31 04:03:49'),
('支洁', '男', '1989-09-21', '上海市', 'yongzeng@yahoo.com', '2023/08/03 07:46:39'),
('张桂兰', '女', '1995-05-03', '台湾省', 'qiangcui@hotmail.com', '2023/08/31 00:25:48'),
('刘洋', '男', '1987-07-17', '湖北省', 'weiyi@gmail.com', '2023/12/01 16:11:06'),
('鲁凤英', '女', '1987-08-22', '湖南省', 'gangmeng@yahoo.com', '2023/03/20 00:49:56'),
('桂云', '男', '1984-08-06', '湖北省', 'cwan@yahoo.com', '2022/03/05 05:39:47'),
('李桂芳', '男', '1996-05-24', '甘肃省', 'ping62@yahoo.com', '2022/09/10 04:32:11'),
('傅云', '女', '1991-03-01', '山西省', 'shichao@hotmail.com', '2021/03/29 01:19:49'),
('王玉珍', '男', '1987-11-28', '广东省', 'vpeng@yahoo.com', '2021/05/26 23:12:57');
select * from tb_member;
第一题、求会员中年龄最大的会员信息
– 先找到年龄最大的会员,
分析(提取年份信息,然后用当前时间减去注册会员时间)
select max(year(current_date) - year(birthday)) as max_age from tb_member;
– 根据最大年龄筛选会员
select * from tb_member where year(current_date) - year(birthday) = (select max(year(current_date) - year(birthday)) as max_age from tb_member);
第二题、根据会员注册时间,将用户分为新用户(小于等于90天) 和老用户(大于90天)
分析,先使用datdeiff()提取注册会员天数,
select *,datediff(current_timestamp,create_time) as diff_date from tb_member;
然后用if语句判断是否是新用户
select *,if(diff_date<=90,'新用户','老用户') as role from (select *,datediff(current_timestamp,create_time) as diff_date from tb_member) tb_diff;