P表有两列,PNO ,Fid 每个PNO对应一个或多个fid。X,Y属于PNO
,如何计算有多少个Y(除了X)的Fid可以cover X的fid。
输出如:
PNO        COUNT
X1          0
X2          1
X3          2 
X4          0

解决方案 »

  1.   

    可不可这样
    select PNO,count() from p where lelf(PNO,1)='x'
      

  2.   

    什么意思呀?count(),是要数什么?而且X是不能提前给出来的。比如说是学生选课表,想要知道 每个学生选的课被多少个其他学生选的课覆盖了。这样说明白不?觉得可以用not exists实现,但是想不出来啊55555555
      

  3.   

    假设学生选课表P,里面的数据是这样的
    学生号(SID)    课程号(CNO)
          1               01
          1               02
          2               02
          3               01
          3               02
          3               03
    现在就是想知道每个学生选的课,被多少个其他学生选的课覆盖了。
    此例的输出结果应该是:
    学生号(SID)     人数(COUNT)
          1                1
          2                2
          3                0
    因为学生1 选了01,02两门,能覆盖他选课的就只有3号
    学生2 选了02号课,所以覆盖他的有1,2两个学生
    学生3选了 01,02,03三门课,没有人能覆盖他的,所以是0
    这样明白不?怎么实现啊?