表A:
ID,Name
1    张三
2    李四
3    王五
4    兰六表B:
ID,UID,PID,State
1   1  1  1
2   1  2  1
3   1  3  1
4   1  4  1
5   2  1  1
6   2  2  1
7   2  3  1
8   2  4  0
5   3  1  1
6   3  2  1
7   3  3  0
8   3  4  0
5   4  1  1
6   4  2  0
7   4  3  0
8   4  4  0
请问如何获得以下排序结果
name 比率
兰六 25%
王五 50%
李四 70%
张三 100%百分比来源pid共4个1-4  代表4次选择。  选0的次数/pid的总个数 = 这个百分比。 
感谢了~~~~

解决方案 »

  1.   

    本帖最后由 josy 于 2012-06-03 18:05:25 编辑
      

  2.   


    select a.name,ltrim(sum(1-b.state)*100/count(1))+'%' as 比率
    from a
    join b on a.id=b.uid
    group by a.name
    order by sum(1-b.state)*100/count(1)
      

  3.   

    在请问 
    select a.id,a.name,ltrim(sum(b.state)*100/count(1))+'%' as 比率
    from a
    join b on a.id=b.uid
    group by a.name,a.id
    order by sum(b.state)*100/count(1)如此之后, 2次的结果个数不一样, 包含uid后,个数大于 之 group by name的个数。  请问怎么回事呢?