表如下 
姓名 课程 分数 
张三 语文 88 
张三 物理 66 
李四 语文 79 
李四 物理 79 
王五 语文 82 
王五 物理 73 
赵六 语文 78 
赵六 物理 82 我想得到的结果是 姓名 课程 分数 
李四 物理 79 即 得到 物理课分数第二名的人的信息 这段是别人写的SELECT 姓名, 课程, 分数 
FROM 成绩单    a 
WHERE (select count(1) from 成绩单 where 课程=a.课程 and 课程='物理' and 分数>a.分数)=1但是我看不懂(select count(1) from 成绩单 where 课程=a.课程 and 课程='物理' and 分数>a.分数)=1这段是什么意思。特别是分数>a.分数 ,它的比较过程具体是怎么样的,请帮我解释一下,好急

解决方案 »

  1.   

    (select count(1) from 成绩单 where 课程=a.课程 and 课程='物理' and 分数>a.分数)=1 
    比当前人的物理成绩高的只有一人。也就是说,这个人是第2
      

  2.   

    我的理解是满足了count(1)=1的时候,分数>a.分数的情况只有1种,所以应该是倒数第二名的人才会出现这种情况