day02
02.md
SELECTexam_record.`exam_id` AS tid,COUNT(DISTINCT exam_record.`uid`) AS uv,COUNT(*) AS pvFROMexam_recordGROUP BY exam_record.`exam_id` UNION ALLSELECT`practice_record`.`question_id` AS tid,COUNT(DISTINCT practice_record.`uid`) AS uv,COUNT(*)FROMpractice_recordGROUP BY practice_record.`question_id`
day03
03.md
SELECTt1.product_id,ROUND(t1.num1/t2.num2,3) FROM(SELECTtb_order_detail.`product_id`,COUNT( DISTINCT tb_order_overall.`uid`) num1FROMtb_order_overall,tb_order_detailWHERE tb_order_overall.`order_id`=tb_order_detail.`order_id`AND TIMESTAMP(NOW(),'%d')-TIMESTAMP(tb_order_overall.`event_time`,'%d')>=90GROUP BY tb_order_detail.`product_id` ,tb_order_overall.`uid` HAVING COUNT(*)>1 ) AS t1,(SELECTtb_order_detail.`product_id`,COUNT( DISTINCT tb_order_overall.`uid`) num2FROMtb_order_overall,tb_order_detailWHERE tb_order_overall.`order_id`=tb_order_detail.`order_id`AND TIMESTAMP(NOW(),'%d')-TIMESTAMP(tb_order_overall.`event_time`,'%d')>=90GROUP BY tb_order_detail.`product_id` ) AS t2 ,tb_product_infoWHEREt1.product_id=t2.product_idAND tb_product_info.`product_id`=t2.`product_id`AND tb_product_info.`tag`='零食'ORDER BY t1.product_id LIMIT 3
day04
day05
drop table if exists examination_info,user_info,exam_record;CREATE TABLE examination_info ( id int PRIMARY KEY AUTO_INCREMENT COMMENT '自增ID', exam_id int UNIQUE NOT NULL COMMENT '试卷ID', tag varchar(32) COMMENT '类别标签', difficulty varchar(8) COMMENT '难度', duration int NOT NULL COMMENT '时长', release_time datetime COMMENT '发布时间')CHARACTER SET utf8 COLLATE utf8_general_ci;CREATE TABLE user_info ( id int PRIMARY KEY AUTO_INCREMENT COMMENT '自增ID', uid int UNIQUE NOT NULL COMMENT '用户ID', `nick_name` varchar(64) COMMENT '昵称', achievement int COMMENT '成就值', level int COMMENT '用户等级', job varchar(32) COMMENT '职业方向', register_time datetime COMMENT '注册时间')CHARACTER SET utf8 COLLATE utf8_general_ci;CREATE TABLE exam_record ( id int PRIMARY KEY AUTO_INCREMENT COMMENT '自增ID', uid int NOT NULL COMMENT '用户ID', exam_id int NOT NULL COMMENT '试卷ID', start_time datetime NOT NULL COMMENT '开始时间', submit_time datetime COMMENT '提交时间', score tinyint COMMENT '得分')CHARACTER SET utf8 COLLATE utf8_general_ci;INSERT INTO user_info(uid,`nick_name`,achievement,`level`,job,register_time) VALUES (1001, '牛客1', 19, 0, '算法', '2020-01-01 10:00:00'), (1002, '牛客2号', 1200, 3, '算法', '2020-01-01 10:00:00'), (1003, '牛客3号♂', 22, 0, '算法', '2020-01-01 10:00:00'), (1004, '牛客4号', 25, 0, '算法', '2020-01-01 11:00:00'), (1005, '牛客555号', 4000, 7, '算法', '2020-01-01 10:00:00'), (1006, '牛客6号', 25, 0, '算法', '2020-01-02 11:00:00'), (1007, '牛客7号', 25, 0, '算法', '2020-01-02 11:00:00'), (1008, '牛客8号', 25, 0, '算法', '2020-01-02 11:00:00'), (1009, '牛客9号', 25, 0, '算法', '2020-01-02 11:00:00'), (1010, '牛客10号', 25, 0, '算法', '2020-01-02 11:00:00'), (1011, '666666', 3000, 6, 'C++', '2020-01-02 10:00:00');INSERT INTO examination_info(exam_id,tag,difficulty,duration,release_time) VALUES (9001, '算法', 'hard', 60, '2020-01-01 10:00:00'), (9002, '算法', 'hard', 80, '2020-01-01 10:00:00'), (9003, 'SQL', 'medium', 70, '2020-01-01 10:00:00');INSERT INTO exam_record(uid,exam_id,start_time,submit_time,score) VALUES(1001, 9001, '2020-01-01 09:01:01', '2020-01-01 09:21:59', 80),(1002, 9003, '2020-01-20 10:01:01', '2020-01-20 10:10:01', 81),(1002, 9002, '2020-01-01 12:11:01', '2020-01-01 12:31:01', 83),(1003, 9002, '2020-01-01 19:01:01', '2020-01-01 19:30:01', 75),(1004, 9002, '2020-01-01 12:01:01', '2020-01-01 12:11:01', 60),(1005, 9002, '2020-01-01 12:01:01', '2020-01-01 12:41:01', 90),(1006, 9001, '2020-01-02 19:01:01', '2020-01-02 19:32:00', 20),(1007, 9002, '2020-01-02 19:01:01', '2020-01-02 19:40:01', 89),(1008, 9003, '2020-01-02 12:01:01', '2020-01-02 12:20:01', 99),(1008, 9001, '2020-01-02 12:01:01', '2020-01-02 12:31:01', 98),(1009, 9002, '2020-01-02 12:01:01', '2020-01-02 12:31:01', 82),(1010, 9002, '2020-01-02 12:11:01', '2020-01-02 12:41:01', 76),(1011, 9001, '2020-01-02 10:01:01', '2020-01-02 10:31:01', 89);
select user_info.uid,level,register_time,Max(score) from user_info join (select uid ,submit_time, score ,exam_id from exam_record where uid in (select uid from user_info where job = '算法')) AS record on user_info.uid = record.uid and DATE_FORMAT(user_info.register_time,'%Y%m%d')=DATE_FORMAT(record.submit_time,'%Y%m%d')group by record.uid order by score desclimit 6,3;