使用SQL Server分析2020全国大学生数学竞赛河南赛区结果

01/03 10:01
阅读数 45

目录


本次所使用的数据

链接:https://pan.baidu.com/s/1Dv3MdMWX2Zr58q96JcDhgQ 
提取码:zhk7 

背景

昨天,也就是2020年的最后一天,全国大学生数学竞赛河南赛区的结果终于发布,有人欢喜有人愁。元旦小假期,闲来无事,分析一下这次的结果,以及对河南的众多高校的结果进行对比与总结。

平台:SQL Server 2019 SSMS

语言:SQL

开始

1、原始文件

老师给的是一个**pdf**文件

​ 类似这样的:

要想导入的SQL Server中,必须转为**Excel**。所以我这里利用 Adobe Acrobat Pro DC 将其转换为Excel表格。转换后的格式如下:

注意:需要把Excel文件的第一行删除,也就是把“第十二届全国大学生数学竞赛河南赛区获奖名单”所在的那一行删除掉。

2、将Excel导入SQL Server。

右击数据库->Task->Import Data,然后选择导入的数据源为Excel,再选择刚刚转换的Excel表格,即可导入到SQL Server中。步骤如下:

3、查看导入的数据表

导入成功之后,刷新一个数据库。可以看到新导入的数据:

## 4、整理

这是你可能会发现,这表怎么多了一列 “F3” ?我也搞不清楚,导入之前Excel可是没有这一列的啊?不管了,等会删掉就行。

1)先重命名一下表的名字

我重命名为 “ Math-WinList"。

注意之后刷新一下数据库。

2)删除那一个多余的列。

alter table [Math-WinList] drop column F3

3)删除值为NULL的行

--删除值为 NULL的行
delete  from [Math-WinList]
where 序号 is NULL

删除之后的结果:

## 5、操作

1)按性别分组

select 
	性别,
	COUNT(*) as 获奖总数
from [Math-WinList]
group by 性别

结果:
在这里插入图片描述

2)按每个学校的获奖总人数排序。

select isnull(a.学校名称, b.学校名称) 学校名称,
    isnull(a.获奖总数, 0) 获奖总数,
    isnull(b.一等奖总数, 0) 一等奖总数
from (
        select 学校名称,
            COUNT(学校名称) as 获奖总数
        from [Math-WinList]
        group by 学校名称
    ) a
    FULL JOIN (
        select 学校名称,
            COUNT(学校名称) as 一等奖总数
        from [Math-WinList]
        where 获奖等级 = '一等奖'
        group by 学校名称
    ) b on a.学校名称 = b.学校名称
ORDER BY 获奖总数 desc

结果:

学校名称 获奖总数(人) 一等奖总数(人)
郑州大学 1500 306
河南科技大学 892 224
河南大学 798 176
郑州轻工业大学 638 100
河南理工大学 562 140
河南科技学院 526 104
河南财经政法大学 370 76
黄淮学院 336 34
河南工业大学 324 76
信息工程大学 314 80
华北水利水电大学 288 56
洛阳师范学院 272 58
安阳工学院 250 62
河南师范大学 212 54
信阳学院 164 22
郑州师范学院 164 30
郑州航空工业管理学院 152 40
信阳师范学院 130 34
南阳师范学院 124 24
平顶山学院 116 26
郑州西亚斯学院 112 16
洛阳理工学院 110 26
郑州升达经贸管理学院 106 8
安阳师范学院 102 24
河南师范大学新联学院 98 4
河南大学民生学院 90 24
河南农业大学 88 20
许昌学院 78 18
商丘师范学院 76 8
郑州财经学院 72 4
河南工学院 64 18
商丘工学院 60 16
商丘学院 56 6
周口师范学院 54 8
安阳学院 52 12
河南城建学院 50 10
郑州经贸学院 50 2
河南牧业经济学院 44 12
中原工学院 32 8
新乡学院 30 6
河南理工大学鹤壁工程技术学院 24 4
河南财政金融学院 16 2
黄河科技学院 16 0

3)将SQL查询结果导出为Excel

将”按学校的获奖总人数“获奖的结果导出为Excel。

复制这个SQL代码。然后右击数据库->Task->Export Data。之后数据源为Sql Server,导出为Excel。步骤如下:

在这里插入图片描述

最后

从结果中可以可出,郑州大学在河南依旧是遥遥领先,但是河南大学的成绩缺不那么令人满意,被河南科技大学超越,还好占据了前三名的位置。第四名是郑州轻工业大学,这所学校实力不俗,但是奈何名气远不如河南理工大学、河南工业大学等学校。

行吧,就这了。太累了!!!

而且好久没有用过数据库了,写SQL语句真的是费了很大劲。唉,还要多学习。

祝大家新年快乐啊!!!


展开阅读全文
打赏
0
0 收藏
分享
加载中
更多评论
打赏
0 评论
0 收藏
0
分享
返回顶部
顶部