如何获得学生最高的期中成绩

时间:2019-07-24 11:37:12

标签: sql-server

我希望从下表中获得最大的学生入学成绩。

($ordered | Get-Member)[0].TypeName

我所需的输出是:

Student name    Interm1 marks    Interm2 marks     Interm3 marks
Raj             60               75                89
raju            78               74                67
ram             67               79                65
balaji          91               89                93

选项:

Balaji 93 

像这样,我需要输出。  任何机构都可以在这里帮助我进行此查询。

2 个答案:

答案 0 :(得分:2)

您需要首先取消数据透视,然后获取MAX值。我更喜欢使用VALUES取消数据透视,而不是UNPIVOT运算符:

SELECT YT.StudentName,
       MAX(IM.ItermMark) AS MaxItermMark
FROM YourTable YT
     CROSS APPLY(VALUES(Interm1Mark),(Interm2Mark),(Interm3Nark))IM(ItermMark)
GROUP BY StudentName;

答案 1 :(得分:1)

看看这个。这应该做您想做的事

SELECT [Student name], MAX(MaxMark)
FROM
(
    SELECT [Student name], 
        (SELECT MAX(v) FROM (VALUES ([Interm1 marks]), ([Interm2 marks]), ([Interm3 marks])) AS value(v)
     ) AS [MaxMark]
) AS subquery
GROUP BY [Student name]