RightAnswer StudentAnswer
D           D
D           D
A           A
C           C
A           A
A           A
C           C
A           A
C           C
A           A
B           D
C           D
当我查询出这样的结果后,如果StudentAnswer与RightAnswer一样就算对的,如果不一样就算错的,我想统计对的有多少个,错的有多少个,以及正确率,请教一下如何写?谢谢!

解决方案 »

  1.   


    select (case when RightAnswer =StudentAnswer then 1 else 0 end) 对,
    (case when RightAnswer <>StudentAnswer then 1 else 0 end)错,
    (case when RightAnswer =StudentAnswer then 1 else 0 end) *1.0/count(1)
     from T
      

  2.   

    select 
    sum(case when RightAnswer =StudentAnswer then 1 else 0 end) 对,
    sum(case when RightAnswer <>StudentAnswer then 1 else 0 end)错,
    ltrim(str(sum(case when RightAnswer =StudentAnswer then 1 else 0 end) *1.0/count(1)*100,6,2))+'%' N'正確率' from T
      

  3.   

    declare @t table(RightAnswer char, StudentAnswer char)
    insert into @t select 'D','D' 
    union all select 'D','D' 
    union all select 'A','A' 
    union all select 'C','C' 
    union all select 'B','D' 
    union all select 'C','D' 
    union all select 'C','D' select sum(case when RightAnswer=StudentAnswer then 1 else 0 end) as '○',
    sum(case when RightAnswer<>StudentAnswer then 1 else 0 end) as '×',
    left(sum(case when RightAnswer=StudentAnswer then 1.0 else 0.0 end) /count(1)*100,5)+'%' as '正確率'
    from @t/*
    ○ × 正確率
    4 3 57.14%
    */