找到每个季度每个学生的数学分数。我们需要编写一个查询来查找每个学生的所有季度的最大分数
样本表。
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
答案 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