[面试]应聘某公司BI/DW/SQL开发的一道测试题(行转列)
来源:互联网 发布:手机淘宝首页代码 编辑:程序博客网 时间:2024/04/30 09:19
题目:
Provide:
NAME
COURSE
SCORE
Alex
English
81
Lucy
Math
79
Lucy
English
82
Alex
English
83
Alex
Math
77
Lucy
Math
75
Expect:
NAME
ENGLISH
MATH
SUM_SCORE
Alex
83
77
160
Lucy
82
79
161
我的理解:取每个人每科最大分,再计算总分。
实现SQL(原来word直接贴过来的复制再粘贴后空格丢失,改成嵌到代码框中的形式了):
SELECT NAME ,SUM(english) english ,SUM(math) math ,SUM(english+ math)sum_score FROM(SELECT NAME ,MAX(score) english ,0 math FROM class_score WHERE course ='English' GROUP BY NAME UNION SELECT NAME ,0 english ,MAX(score) math FROM class_score WHERE course ='Math' GROUP BY NAME)GROUP BY NAMEORDER BY NAME
测试:
CREATE TABLE class_score(
NAME VARCHAR2(20),
course VARCHAR2(20),
score NUMBER);
INSERT INTO class_score
(NAME
,course
,score
)
VALUES ('Alex', 'English', 81);
INSERT INTO class_score
(NAME
,course
,score
)
VALUES ('Lucy', 'Math', 79);
INSERT INTO class_score
(NAME
,course
,score
)
VALUES ('Lucy', 'English', 82);
INSERT INTO class_score
(NAME
,course
,score
)
VALUES ('Alex', 'English', 83);
INSERT INTO class_score
(NAME
,course
,score
)
VALUES ('Alex', 'Math', 77);
INSERT INTO class_score
(NAME
,course
,score
)
VALUES ('Lucy', 'Math', 75);
SQL> col name for a10
SQL> col course for a10
SQL> col score for 99
SQL> SELECT *
2 FROM class_score;
NAME COURSE SCORE
---------- ---------- -----
Alex English 81
Lucy Math 79
Lucy English 82
Alex English 83
Alex Math 77
Lucy Math 75
6 rows selected.
SQL> SELECT NAME
2 ,SUM (english) english
3 ,SUM (math) math
4 ,SUM (english + math) sum_score
5 FROM (SELECT NAME
6 ,MAX (score) english
7 ,0 math
8 FROM class_score
9 WHERE course = 'English'
10 GROUP BY NAME
11 UNION
12 SELECT NAME
13 ,0 english
14 ,MAX (score) math
15 FROM class_score
16 WHERE course = 'Math'
17 GROUP BY NAME)
18 GROUP BY NAME
19 ORDER BY NAME
20 /
NAME ENGLISH MATH SUM_SCORE
---------- ---------- ---------- ----------
Alex 83 77 160
Lucy 82 79 161
SQL>
- [面试]应聘某公司BI/DW/SQL开发的一道测试题(行转列)
- 某公司面试的一道智力题
- 某公司面试测试题
- 某公司的一道试题
- 一道智力题(某公司笔试题)
- 面试-一道经典的sql语句题
- 面试-一道经典的sql语句题
- 一道难住精英们的应聘题
- 一道创新思维的应聘题
- 分享一道Kingsoft的笔试题——Kingsoft笔试归来(应聘职位:服务器端开发工程师)
- BI/DW
- 某公司的面试题目
- 分享某公司JAVA实习生招聘代码面的一道题
- 面试的一道题
- 一道年薪80万的面试智力测试题:
- 曾经参加某公司的一道面试题--ASP.NET中如何防范SQL注入式攻击
- 曾经参加某公司的一道面试题--ASP.NET中如何防范SQL注入式攻击
- 某公司的一道机考题的解答
- 缓存融合(Cache Fusion)介绍
- android Fragments详解五:与activity通讯
- 处理数据库存在大量inactive会话一例
- java 中的抽象类和接口
- 配置TomCat
- [面试]应聘某公司BI/DW/SQL开发的一道测试题(行转列)
- Logger.getLogger()和LogFactory.getLog()的区别
- Jquery 控件是否可用
- 处理EXP导出HANG住问题一例 library cache lock
- V4L2 简介
- C#编程好习惯
- JAVA学习网站推荐
- android Fragments详解七:fragement示例
- Spring之AOP:我行之我见