自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(38)
  • 收藏
  • 关注

原创 牛客网最后一题(91题 )

通关记录一下吧,全部通过,只是个别题写的不够优雅。还是学到了一些东西!题目点这里题解:select u.id ,u.name ,b.sum_grade_numfrom(select user_id ,sum(new_grade_num) as sum_grade_num ,rank() over ( order by sum(new_grade_num) DESC) as t_rankfrom(select user_id ,grade_num ,ty

2021-06-07 19:34:17 115

原创 牛客网69题

解法1:select l.date ,case when l3.new then l3.new else 0 ENDfrom(select datefrom logingroup by date) as l left join (select date ,count(1) AS newfrom login AS l1where user_id not in ( select user_id

2021-06-06 23:31:18 96

原创 MySQL IN用法拓展

示例表结构如下:常规用法select *from login where date in ( select max(date) from login group by user_id );拓展用法select *from login where (user_id,date) in ( select user_id ,max(date) from login as l2

2021-06-06 15:25:13 88

原创 MySQL排序窗口函数扩展

常规排序函数用法rank、dense_rank、row_number 用法类似(区别不再介绍)这里只列举rank (dense_rank、row_number 同样适用):常规用法如下:select emp_no ,salary ,rank() over (order by salary ) as rankingfrom salaries运行结果如下拓展如果有两个甚至更多排序字段怎么做?如下:select emp_no ,salary

2021-06-05 13:08:27 86

原创 贷款风险预测

贷款违约风险预测项目来源于Kaggle 比赛,要求依据客户的信用卡信息,分期付款信息,信用局信息等预测客户贷款是否会违约。加载模块,搭建环境import numpy as npimport pandas as pdimport matplotlib.pyplot as pltplt.rcParams['font.sans-serif'] = ['SimHei']import seaborn as snsimport warnings# 忽略警告warnings.filterwarnin

2021-06-03 14:11:44 2803 1

原创 在售房源数据可视化

项目要求探索地理位置、单价、面积、房屋朝向、户型、楼层位置等因素对购房者关注热度的影响。数据读取读取CSV文件,浏览各字段内容补充 ① :忽略警告import warningswarnings.filterwarnings(‘ignore’)import pandas as pddata=pd.read_csv(r"C:\Users\TP\Desktop\在售房源数据可视化\数据\house.csv")#或者写成 data=pd.read_csv("C:/Users/TP/Deskt

2021-04-14 20:52:34 715 1

原创 K-means K 值选择

K-means K 值选择拍脑袋法一个非常快速的,拍脑袋的方法是将样本量除以2再平方出来的值作为K值:# python 求平方根函数import numpy as npimport math # numpy 库print("np.sqrt(4):",np.sqrt(4))# 内置函数print("pow(4,0.5):", pow(4,0.5))# math 库print("math.sqrt(4):",math.sqrt(4))# n 为样本数n=200k=np.sqr

2021-04-13 09:56:58 599

原创 FRM 模型流程记录

J.w:记录学习过程定义最近一次消费时间(Recency):取数的时候一般取最近一次消费记录到当前时间的间隔;一定时间内消费频率(Frequency),取数时,一般是取一个时间段内用户消费频率。比如一年内有多少个月消费,一个月内有多少天到店等等;一定时间内累计消费金额(Monetary),取数时,一般是取一个时间段内用户消费金额,比如一年内有多少消费金额;一、数据导入链接mysql如下:import pandas as pdimport pymysqlsql="SELECT * FRO

2021-03-15 19:41:06 894

原创 求教Python子类init添加属性问题

1、下面子类添加属性时提示错误class Car(): """一次模拟汽车的简单尝试""" def __init__(self,make,model,year): """初始化描述性汽车属性""" self.make= make self.model = model self.year = year self.odometer_reading=0 def get_descriptive_name(s

2020-08-22 21:38:49 830 3

原创 第47、48、49、50题

47.查询本周过生日的学生题目分析:如果不考虑年初年末那几天特殊情况那么假设假设当前为X(例如6.17)学生生日是Y(假如是6.15),当前周几是dow(例如周三),并且按照我们的习惯把周日当做一周最后一天,那么如果下面等式成立则该学生的生日是在本周:dow<=y-x<=7-dow(如果把周日当做一周的第一天则满足:dow+1=<y-x<=6-dow)改写成 dow+x<=y<=x+7-dow 即 【x+dow,x+7-dow】把年初年末特殊情况考虑进去,只要当

2020-07-27 17:03:04 287

原创 Postgresql 第 45、46 题

45、查询各学生的年龄,只按年份来算SELECT sid ,sname ,ssex,(CAST((EXTRACT(YEAR FROM CURRENT_DATE)) AS integer)-CAST((EXTRACT(YEAR FROM sage)) AS integer)) AS 年龄FROM student; sid | sname | ssex | 年龄------------+------------------------+-----

2020-07-27 16:58:10 410

原创 Postgresql 第 42、43、44 题

42、统计每门课程的学生选修人数(超过 5 人的课程才统计)SELECT cid, count(sid)FROM SCGROUP BY cidHAVING COUNT(sid)>5; cid | count------------+------- 02 | 6 03 | 6 01 | 6(3 行记录)网络答案:SELECT SC.Cid, Course.Cname, COUNT(*)FR

2020-07-27 16:55:34 159

原创 Postgresql 第 41 题

41、查询每门功成绩最好的前两名SELECT S.sid, S.sname ,SC2.cid ,SC2.scoreFROM student AS S INNER JOIN (SELECT * FROM (SELECT * ,ROW_NUMBER() OVER (partition by cid order by score DESC) AS rownumbersFROM SCWHERE score is not null) AS SC1WHERE SC1. rownumbers i

2020-07-27 16:52:03 105

原创 Postgresql 第 40 题

40、查询不同课程成绩相同的学生的 学生编号、课程编号、学生成绩①、该学生所有课程成绩相同解法1:SELECT SC1.sid,SC1.score AS 课程1成绩, SC2.score AS 课程2成绩,SC3.score AS 课程3成绩FROM (SELECT * FROM SC WHERE cid='01') AS SC1 INNER JOIN (SELECT * FROM SC WHERE cid='02') AS SC2ON SC1.sid=SC2.sidINNER JOIN

2020-07-27 16:49:47 778

原创 Postgresql 第 38、39 题

38、成绩不重复,查询选修「张三」老师所授课程的学生中,成绩最高的学生信息及其成绩解法1:SELECT S.sid,S.sname,SC.score AS 最高成绩FROM student AS S INNER JOIN SCON S.sid=SC.sidWHERE SC.score=( SELECT MAX(score)FROM SC INNER JOIN course AS CON SC.cid=C.cidINNER JOIN teacher AS TON C.tid=T

2020-07-27 16:45:56 155

原创 Postgresql 第36、37题

36、查询课程编号为 02 且课程成绩在 80 分以上的学生的学号和姓名SELECT S.sid,S.sname,SC.cid,SC.scoreFROM student AS S INNER JOIN SCON S.sid=SC.sidwhere SC.cid='02'AND score>80; sid | sname | cid | score------------+------------------------+

2020-07-27 16:41:09 75

原创 Postgresql 第 33、34、35 题

33、查询所有学生的课程及分数情况(存在学生没成绩,没选课的情况)SELECT S.sid , S.sname, C.cid,SC.scoreFROM student AS S left join SCON S.sid=SC.sidLEFT JOIN course AS CON SC.cid=C.cid; sid | sname | cid | score------------+-------------------

2020-07-27 16:34:37 67

原创 Postgresql 第 32 题

32、查询课程名称为「数学」,且分数低于 60 的学生姓名和分数①、SELECT S.sname ,SCC.scoreFROM student AS S inner join (SELECT SC.sid,SC.scoreFROM SC INNER JOIN (SELECT cidFROM courseWHERE cname='数学') AS CON SC.cid=C.cidWHERE SC.Score < 60) AS SCCON S.sid=SCC.sid;

2020-07-27 16:31:53 285

原创 Postgresl 第 29、30、31 题

29、查询 1990 年出生的学生名单①、SELECT *FROM studentwhere CAST(sage AS VARCHAR(10)) like '1990%'; sid | sname | sage | ssex------------+------------------------+------------+------- 01 | 赵雷 | 1990-01-0

2020-07-27 16:28:49 125

原创 Postgresql 第 26、27、28 题

26、查询男生、女生人数SELECT ssex, count(*)FROM studentGROUP BY ssex; ssex | count-------+------- 男 | 4 女 | 8(2 行记录)27、查询名字中含有「风」字的学生信息SELECT *FROM studentWHERE sname LIKE '%风%'; sid | sname | sage | ssex

2020-07-27 16:23:58 88

原创 Postgresql 第24、25 题

24、查询每门课程被选修的学生数SELECT cid, count(sid)FROM SCGROUP BY cid; cid | count------------+------- 02 | 6 03 | 6 01 | 6(3 行记录)25、查询出只选修两门课程的学生学号和姓名①、SELECT sid,snamefrom studentwhere sid in (SELECT sidF

2020-07-27 16:03:00 88

原创 Postgresql 第 23 题

23、查询各科成绩前三名的记录①、select sid, sname, cid1, score1FROM student AS S INNER JOIN (select sid1,cid1,score1from (SELECT SC1.sid AS sid1,SC1.cid AS cid1,SC1.score AS score1, case when SC1.score<SC2.score then 1 else 0 end AS scorenumber FROM SC AS

2020-07-27 15:59:44 101

原创 Postgresql 第20、21、22题

20、查询学生的总成绩,并进行排名,总分重复时保留名次空缺select sid,sum(score),rank() over ( order by sum(score) DESC)AS rankingfrom SCgroup by sid; sid | sum | ranking------------+-----+--------- 03 | 240 | 1 02 | 210 | 2 01 | 189

2020-07-27 15:55:27 121

原创 Postgresql 第18、19题

18、按各科成绩进行排序,并显示排名, Score 重复时保留名次空缺①、select sid,cid,score,rank() over (partition by cid order by score) AS rankingfrom SC; sid | cid | score | ranking------------+------------+-------+--------- 06 | 01 | 31 |

2020-07-27 15:50:46 142

原创 Postgresql 第 17 题

17、查询各科成绩最高分、最低分和平均分:以如下形式显示:课程 ID,,及格率,中等率,优良率,优秀率及格为>=60,中等为:70-80,优良为:80-90,优秀为:>=90要求输出课程号和选修人数,查询结果按人数降序排列,若人数相同,按课程号升序排列①、select 01 AS cid, max(score), min(score), avg(score), count(*),(sum(case when score>=60 then 1 else 0 en

2020-07-27 15:29:04 194

原创 Postgresql 第15、16题

15、检索” 01 "课程分数小于 60,按分数降序排列的学生信息select S.sid,S.sname,S.sage,SC1.scorefrom student AS S inner join(select sid ,scorefrom SCwhere cid='01'AND score<60) AS SC1ON S.sid=SC1.sidorder by SC1.score DESC; sid | sname |

2020-07-27 15:07:10 108

原创 Postgresql 第13、14题

13、查询没学过"张三"老师讲授的任一门课程的学生姓名①、SELECT sid,sname,sage FROM student where sid not in ( SELECT SC.sid FROM SC INNER JOIN course AS C ON SC.cid=C.cid INNER JOIN Teacher AS T ON C.tid=T.tid WHERE T.tname='张三' ); sid | sname

2020-07-27 15:01:56 100

原创 Postgresql 第11、12题

11、查询至少有一门课与学号为” 01 “的同学所学相同的同学的信息①、select S.sid ,S.sname , S.ssex ,SC.cid ,SC.scorefrom student AS S inner join SCON S.sid=SC.sidWHERE SC.cid in (select cidfrom SCwhere sid='01')AND SC.sid<>'01';②、网络答案SELECT S2.Sid, S2.Sname, S2.Sage, S2

2020-07-27 14:49:10 114

原创 Postgresql 第8、9、10题

8、查询「李」姓老师的数量解法1:select count(*)from teacherwhere tname like '李%';网络答案:SELECT COUNT(*) AS 李姓老师数量 FROM (SELECT * FROM Teacher WHERE Tname LIKE '李%') as TeacherLi;没搞懂网络答案为什么要引用子查询(好像有点懂了……)9、查询学过「张三」老师授课的同学的信息SELECT S2.Sid, S2.Sname, S2.Sage, S

2020-07-27 14:41:00 178

原创 Postgresql 第 7 题

7、查询所有同学的学生编号、学生姓名、选课总数、所有课程的总成绩(没成绩的显示为 null )①、select S.sid,S.sname,coalesce(cast(countcid AS varchar(4) ), '0' ) AS "选课总数",coalesce(cast(sumscore AS varchar(4)), 'null' ) AS "总成绩"FROM student AS S left join(select sid, count(cid) AS countci

2020-07-27 13:58:04 88

原创 Postgresql 第6、7.1题

6、查询在 SC 表存在成绩的学生信息题目理解:只要存在成绩则满足要求,即便成绩为0,也就是说只有在所有课程的成绩均为null时才不满足要求。①、select S.sid,S.sname,S.sagefrom student AS S inner join(select sidfrom SCgroup by sidhaving count(score)>0) AS SC1ON S.sid=sc1.sid;笔者的程序不足之处:没提取成绩。解决方法,再加个与SC表的左联结left

2020-07-27 13:53:22 106

原创 Postgresql 第5题

5、查询平均成绩大于等于 60 分的同学的学生编号和学生姓名和平均成绩题目理解:这个题分两部分①选取平均分>=60分的学生id,②通过联结提取学生信息;其实这个题可能存在一种特殊情况,虽然本例中可能不用考虑。那就是某个同学的某个课程得分为null,那么这里的平均分就不能只用AVG函数直接得到而应该用sum(score)/cout(cid) 得到。但这并不影响整个题的思路,所以这里不分析特殊情况,特殊情况用sum(score)/cout(cid)稍加修改就好,不再做叙述①选取平均分>60的学

2020-07-27 13:45:35 170

原创 Postgresql 第4题

4、查询不存在” 01 “课程但存在” 02 “课程的情况题目理解:这个题和我理解错的第三题一样……解法1:select S.sid, S.sname, SC.cid, SC.scorefrom student AS S left join SCON S.sid=SC.sidwhere '01' not in (select cid from SC where SC.sid=S.sid)AND '02' in (select cid from SC where SC.sid=S

2020-07-27 12:11:42 92

原创 Postgresql 第3题

3、查询存在” 01 “课程但可能不存在” 02 “课程的情况(不存在时显示为 null )(我想吐槽下这个出题的大神……这题啥意思啊,什么叫可能不存在“02”课程,而且cid列如果为null那么逻辑上是不是对应的score也是null,那么SC 表中此行是不是就没有意义,sid与cid不应设置组合住建约束吗?!)题目理解:查询存在‘01’课程但不存在‘02’课程的情况解法1:select S.sid, S.sname, SC.cid, SC.scorefrom student AS S le

2020-07-27 11:58:24 96

原创 Postgresql 第2题

2、查询同时存在” 01 “课程和” 02 “课程的情况题目理解:① 分两种情况 1> 数据行中没有‘01’或者‘02’课程例如06号和07号同学 2> 得分为null 但是学生学习了课程‘01’或者‘02’只是考试成绩录入有误或者同学特殊情况未参加考试;除了上面两种情况剩余的则是符合题意的同学② 同时学习了‘01’和‘02’课程的学生(就像是大学时候的选修课01、02、03三门课程可以选择性学习,无论其成绩是否为null)SC 表: sid | cid

2020-07-27 11:49:41 156

原创 Postgresql 第1题

1、查询" 01 “课程比” 02 "课程成绩高的学生的信息及课程分数解题过程中遇到的问题:① 、自连接最后的字段名是?实践: select * from SC AS SC1 inner join SC AS SC2 ON SC1.Sid=SC2.Sid; testsid | cid | score | sid | cid | score②、别名用法1>select *

2020-07-27 11:27:47 159

转载 Postgreasql 50题

数据表的创建及插入数据1、学生表创建表CREATE TABLE Student ( Sid char(10) primary key, Sname char(20) not null, Sage date , Ssex char(4) );插入数据BEGIN TRANSACTION;insert into Student(Sid, Sname, Sage, Ssex ) values ('01' ,'赵雷','1990-01-01', '男');inser

2020-07-27 10:57:22 285

原创 SQL 学习记录 — 完成 SQLTeaching 练习

完成 SQL Teaching 练习,有点简单,但还是值得纪念一下!!!

2020-07-07 17:33:30 368

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除