找到每个学生每个学生的分数。写一个查询,找出每个学生所有学生的最大分数

时间:2016-05-27 12:07:47

标签: sql oracle

找到每个季度每个学生的数学分数。我们需要编写一个查询来查找每个学生的所有季度的最大分数

样本表。

STUDENT NAME    Q1  Q2  Q3  Q4     
AAA             80  60  65  50     
BBB             71  75  70  55     
CCC             70  80  90  56     
DDD             45  55  65  90

2 个答案:

答案 0 :(得分:2)

Oracle具有least()greatest()函数:

select student, greatest(q1, q2, q3, q4) as greatest_value
from sample;

答案 1 :(得分:0)

DECLARE @Table1 TABLE 
    ( STUDENTNAME  varchar(3),  Q1  int,  Q2  int,  Q3  int,  Q4  int)
;

INSERT INTO @Table1
    ( STUDENTNAME ,  Q1 ,  Q2 ,  Q3 ,  Q4 )
VALUES
    ('AAA', 80, 60, 65, 50),
    ('BBB', 71, 75, 70, 55),
    ('CCC', 70, 80, 90, 56),
    ('DDD', 45, 55, 65, 90)
;

Select T.STUDENTNAME,MAX(T.val)[Quarter] from (
select STUDENTNAME,col,val from @Table1
CROSS APPLY (values ('Q1',q1),
('Q2',q2),
('Q3',q3),
('Q4',q4))cs(col,val))T
GROUP BY T.STUDENTNAME