DBMS SQL数据库查询

时间:2016-07-14 08:09:15

标签: mysql

如何查看?

问题:每sProgram个最年长的学生。

表名为Student

列是:

sID, sLast, sFirst, sMI, sProgram, sGender, sAge   

示例数据:

sID    sLast    sFirst   sMI   sProgram  sGender   sAge
-------------------------------------------------------
001    Right    Mc       D     BSIT         M       26   
002    Michael  John     G     BSIT         M       22  
002    Franco   James    D     BSCPE        M       20   
003    Step     Ren      D     BSECE        M       22 

我想展示最年长的BSIT学生

所需的输出是:

001 , Right, Mc, D, BSIT, M, 26

1 个答案:

答案 0 :(得分:2)

如果您只想要年龄最大的BSID',您可以试试这个:

SELECT *
FROM Student
WHERE sProgram = 'BSIT'
ORDER BY sAge DESC
LIMIT 1

或者如果你想要每个sProgram的最老的学生,你可以这样做:

SELECT t1.*
FROM Student t1
JOIN (
    SELECT sProgram, MAX(sAge) AS sAge FROM Student GROUP BY sProgram
) t2 ON t1.sProgram = t2.sProgram AND t1.sAge = t2.sAge
-- WHERE t1.sProgram = 'BSIT'