`

一个postgresSQL数据库的笔试题

阅读更多
原题:
   为记录某校各班级学生的各科目期末考试成绩,要求建立合理的数据结构并给出关联关系,主要包括字段有姓名、性别、班级、科目、成绩等。
写出你了解的数据库有哪些,选择哪种数据库来记录相关数据,再按要求完成下面试题。
1. 写出创建数据库表结构的SQL语句。
2. 查询:总成绩前10名学生姓名和成绩顺序显示。查询结果显示如下
姓名    总成绩
张三    470
……
3. 查询:全校各科目平均成绩,一行显示。查询结果显示如下
语文    数学    英语    物理    化学
78      85     80      82      85
4. 查询:全校学生总成绩前100名。查询结果显示如下
姓名   班级    语文    数学    英语    物理    化学   总成绩
张三   一班    98     95      90     92      95     470
李四   三班    90     92      94     96      94     466
……
5. 查询: 各班级男、女学生语文科目的平均成绩。查询结果显示如下
班级    男生     女生
一班    75        82
二班    85        81  
……
答案:
--1.写出创建数据库表结构的SQL语句。
CREATE TABLE student(
stud_id int primary key not null,
class_id int not null references class_info(class_id),
stud_name varchar(20),
sex char(1)
)
CREATE TABLE class_info(
class_id int primary key not null,
class_name varchar(20) not null
)
CREATE TABLE achieve(
subject_id int  not null references subject(subject_id),
stud_id int not null references student(stud_id),
achievements int
)
CREATE TABLE subject(
subject_id INT primary key not null,
subject_name varchar(20)
)
--2.查询:总成绩前10名学生姓名和成绩顺序显示
select stud_name, sum(achievements) as 总成绩 from student a,achieve b
where a.stud_id=b.stud_id
group by stud_name
order by 总成绩 desc  limit 10
--3.查询:全校各科目平均成绩,一行显示。
select
round(avg(case when f.subject_id = 1 then f.achievements else 0 end )*5,2) as 语文,
round(avg(case when f.subject_id = 2 then f.achievements else 0 end )*5,2) as 数学,
round(avg(case when f.subject_id = 3 then f.achievements else 0 end )*5,2) as 英语,
round(avg(case when f.subject_id = 4 then f.achievements else 0 end )*5,2) as 物理,
round(avg(case when f.subject_id = 5 then f.achievements else 0 end )*5,2) as 化学
from (select b.stud_id from class_info a left join student b on (a.class_id=b.class_id))t
left join achieve f
on (t.stud_id=f.stud_id)
--4.查询:全校学生总成绩前100名。
select a.stud_name,b.class_name,
sum(case when f.subject_id = 1 then f.achievements else 0 end) as 语文,
sum(case when f.subject_id = 2 then f.achievements else 0 end) as 数学,
sum(case when f.subject_id = 3 then f.achievements else 0 end) as 英语,
sum(case when f.subject_id = 4 then f.achievements else 0 end) as 物理,
sum(case when f.subject_id = 5 then f.achievements else 0 end) as 化学,
(sum (achievements)) as 总成绩
from class_info b, student a, achieve f
where a.class_id=b.class_id and a.stud_id=f.stud_id
group by a.stud_name, b.class_name
order by 总成绩 desc limit 100
--5.查询: 各班级男、女学生语文科目的平均成绩。
select b.class_name,
case when sum(case when a.sex= '1' then 1 else 0 end ) != 0 then sum(case when a.sex='1' then f.achievements else 0 end) / sum(case when a.sex= '1' then 1 else 0 end ) else 0 end as 男生,
case when sum(case when a.sex= '0' then 1 else 0 end ) != 0 then sum(case when a.sex='0' then f.achievements else 0 end) / sum(case when a.sex= '0' then 1 else 0 end ) else 0 end as 女生
from class_info b,student a,achieve f
where a.class_id=b.class_id and a.stud_id=f.stud_id and f.subject_id = 1
group by b.class_name


分享到:
评论

相关推荐

    java中级工程师笔试题-other:其他

    java中级工程师笔试题精彩访谈 技术面试问题列表的精选列表。 如果你想贡献,请阅读 或 。 看看我或者打个招呼。 目录 编程语言/框架/平台 安卓 . AngularJS 主干JS C++ C C♯ 。网 Clojure 咖啡脚本 CSS 姜戈 ...

    高级java工程师笔试题-questions:查询

    高级java工程师笔试题精彩访谈 技术面试问题列表的精选列表。 如果你想贡献,请阅读 或 。 查看我的或 . 目录 编程语言/框架/平台 安卓 . AngularJS 主干JS C++ C C♯ 。网 Clojure CSS 姜戈 EmberJS 二郎 高朗 HTML...

    高级java工程师笔试题-InterviewPrep:面试准备链接

    高级java工程师笔试题面试准备 面试准备链接 目录 编程语言/框架/平台 安卓 . AngularJS 角 主干JS C++ C C# 。网 Clojure CSS Cucumber 姜戈 码头工人 EmberJS 二郎 高朗 图Ql HTML 离子 IOS Java JavaScript ...

    高级java工程师笔试题-Javainterviewquestions:Java面试题

    高级java工程师笔试题目录 编程语言/框架/平台 安卓 AngularJS 角 主干JS C++ C C# 。网 Clojure CSS Cucumber 姜戈 码头工人 EmberJS 二郎 高朗 图Ql HTML 离子 IOS Java JavaScript jQuery 前端构建工具 ...

    高级java工程师笔试题-Resources:资源

    高级java工程师笔试题精彩访谈 技术面试问题列表的精选列表。 如果你想贡献,请阅读 或 。 单击此按钮有助于为 Awesome 项目提供资金 目录 编程语言/框架/平台 安卓 . AngularJS 角 主干JS C++ C C# 。网 Clojure ...

    高级java工程师笔试题-New-Interview-question:新面试题

    高级java工程师笔试题精彩访谈 技术面试问题列表的精选列表。 如果你想贡献,请阅读 或 。 查看我的或 . 目录 编程语言/框架/平台 安卓 . AngularJS 角 主干JS C++ C C# 。网 Clojure CSS Cucumber 姜戈 码头工人 ...

    高级java工程师笔试题-Inteerview-Questions:面试问题

    高级java工程师笔试题精彩访谈 技术面试问题列表的精选列表。 如果你想贡献,请阅读 或 。 查看我的或 . 目录 编程语言/框架/平台 安卓 . AngularJS 主干JS C++ C C♯ 。网 Clojure CSS 姜戈 EmberJS 二郎 高朗 HTML...

    高级java工程师笔试题-eopen:打开

    高级java工程师笔试题技术面试技巧 技术面试问题列表的精选列表。 如果你想贡献,请阅读。 简历模板 为软件工程师准备的简历(Curriculum Vitae)模板。 . 是 CV(简历)的 LaTeX 模板。 目录 编程语言/框架/平台 C ...

    高级java工程师笔试题-awesome:惊人的

    高级java工程师笔试题 精彩访谈 技术面试问题列表的精选列表。 如果你想贡献,请阅读 或 。 目录 编程语言/框架/平台 安卓 . AngularJS 角 主干JS C++ C C# 。网 Clojure CSS Cucumber 姜戈 码头工人 EmberJS 二郎 ...

    高级java工程师笔试题-awesome-interview-resources:一个很棒的面试问题列表在这里分叉并在本地维护

    高级java工程师笔试题很棒的采访清单 技术面试问题列表的精选列表。 目录 编程语言/框架/平台 安卓 . AngularJS 角 主干JS C++ C C♯ 。网 Clojure CSS Cucumber 姜戈 EmberJS 二郎 高朗 HTML 离子 IOS Java ...

    高级java工程师笔试题-irctc:铁道部

    高级java工程师笔试题精彩访谈 技术面试问题列表的精选列表。 如果你想贡献,请阅读 或 。 查看我的或 . 目录 编程语言/框架/平台 安卓 . AngularJS 主干JS C++ C C♯ 。网 Clojure CSS 姜戈 EmberJS 二郎 高朗 HTML...

    高级java工程师笔试题-InterviewCode:面试代码

    高级java工程师笔试题精彩访谈 技术面试问题列表的精选列表。 如果你想贡献,请阅读 或 。 查看我的或 . 目录 编程语言/框架/平台 安卓 . AngularJS 主干JS C++ C C♯ 。网 Clojure CSS 姜戈 EmberJS 二郎 高朗 HTML...

    高级java工程师笔试题-awesome-interview-questions:真棒面试问题

    高级java工程师笔试题精彩访谈 技术面试问题列表的精选列表。 如果你想贡献,请阅读 或 。 查看我的或 . 目录 编程语言/框架/平台 安卓 . AngularJS 主干JS C++ C C♯ 。网 Clojure CSS 姜戈 EmberJS 二郎 高朗 HTML...

    java面试题笔试题-MaximAbramchuck-awesome-interview-questions:MaximAbramchuck真

    java面试题笔试题精彩访谈 技术面试问题列表的精选列表。 如果你想贡献,请阅读 或 。 查看我的或 . 目录 编程语言/框架/平台 安卓 . AngularJS 角 主干JS C++ C C♯ 。网 Clojure CSS Cucumber 姜戈 EmberJS 二郎 ...

    java中级工程师笔试题-awesome-interview-questions-1:真棒面试问题-1

    java中级工程师笔试题精彩访谈 技术面试问题列表的精选列表。 如果你想贡献,请阅读 或 。 看看我或者打个招呼。 目录 编程语言/框架/平台 安卓 . AngularJS 主干JS C++ C C♯ 。网 Clojure 咖啡脚本 CSS 姜戈 ...

    高级java工程师笔试题-interview-questions:面试问题

    高级java工程师笔试题精彩访谈 技术面试问题列表的精选列表。 如果你想贡献,请阅读 或 。 查看我的或 . 目录 编程语言/框架/平台 安卓 . AngularJS 角 主干JS C++ C C♯ 。网 Clojure CSS Cucumber 姜戈 EmberJS ...

    高级java工程师笔试题-Interview-Questions:面试问题

    高级java工程师笔试题精彩访谈 技术面试问题列表的精选列表。 如果你想贡献,请阅读 或 。 单击此按钮有助于为 Awesome 项目提供资金 自豪地支持真棒项目 目录 编程语言/框架/平台 安卓 . AngularJS 角 主干JS C++ C...

    高级java工程师笔试题-awesome-interview-questions:精心挑选的面试问题清单。随意贡献!

    高级java工程师笔试题精彩访谈 技术面试问题列表的精选列表。 如果你想贡献,请阅读 或 。 查看我的 . 目录 编程语言/框架/平台 安卓 . AngularJS 主干JS C++ C C♯ 。网 Clojure CSS 姜戈 EmberJS 二郎 高朗 HTML ...

Global site tag (gtag.js) - Google Analytics