sql小记1

表数据:

id  kc      xh    score  
1   语文  0023  70     
2   语文  0024  76     
3   语文  0025  68     
4   数学  0023  15     
5   数学  0024  68     
6   数学  0025  95     
7   数学  0026  73     
8   英语  0023  77     
9   英语  0024  69     
10  英语  0025  12     
11  英语  0026  54     
12  语文  0026  34     
13  物理  0023  99     
14  化学  0023  89     

查找相关科目最高的成绩记录---对应的sql:

SELECT *
FROM s_score a
WHERE NOT EXISTS(SELECT
                   1
                 FROM s_score b
                 WHERE a.kc = b.kc
                     AND a.score < b.score); 

查找相关科目成绩前2名的记录---对应的sql:

SELECT *
FROM s_score a
WHERE 2 > (SELECT
             COUNT(*)
           FROM s_score b
           WHERE a.kc = b.kc
               AND a.score < b.score)
ORDER BY a.kc,a.score DESC; 

猜你喜欢

转载自hamber.iteye.com/blog/1845232