相应的行成列同一行的列成为结果

解决方案 »

  1.   

    names    course   grade
    a 语文 62.00
    b 语文 70.00
    c 语文 80.00
    a 数学 90.00
    b 数学 95.00
    c 数学 75.00
    a 英语 85.00
    b 英语 92.00
    c 英语 95.00select  names, sum(decode(course,'语文', grade,null)) "语文", 
                   sum(decode(course,'数学', grade,null)) "数学", 
                   sum(decode(course,'英语', grade,null)) "英语" 
    from tmp
    group by names
    names    语文     数学     英语
    a 62.00 90.00 85.00
    b 70.00 95.00 92.00
    c 80.00 75.00 95.00
      

  2.   

    应该这样更符合楼主的意思。course   grade
    ------   ------
    语文 70.00
    语文 80.00
    数学 90.00
    数学 95.00
    英语 85.00
    英语 85.00
    英语 92.00select  sum(decode(course,'语文', grade,null)) "语文", 
                   sum(decode(course,'数学', grade,null)) "数学", 
                   sum(decode(course,'英语', grade,null)) "英语" 
    from eric_tmp语文     数学     英语
    -----    -----    -----
    150      185      262