本帖最后由 linjunjie369865393 于 2011-03-21 15:12:59 编辑

解决方案 »

  1.   

    select * from (
    select name, fenshu from tb
    union
    select nameTwo, fenshuTwo from tb
    union
    select nameThree, fenshuThree from tb
    union
    select nameFour, fenshuFour from tb
    union
    select nameFive, fenshuFive from tb
    order by 2, 1 )
    t where rownum<6;
      

  2.   


    WITH tmp_score AS
     (SELECT NAME, fenshu
        FROM t_test_score
      UNION ALL
      SELECT nametwo, fenshutwo
        FROM t_test_score
      UNION ALL
      SELECT namethree, fenshuthree FROM t_test_score
      UNION ALL
      SELECT nameFour, fenshuFour FROM T_TEST_SCORE
    UNION ALL
      SELECT nameFive ,fenshuFive FROM T_TEST_SCORE)
    SELECT NAME, SUM(fenshu) s_score
      FROM tmp_score
     GROUP BY NAME
     ORDER BY s_score DESC
      

  3.   

    select a.name, a.fenshu
    from (
    select name, sum(fenshu) as fenshu
     from (
    select name, fenshu from tb
    union
    select nameTwo, fenshuTwo from tb
    union
    select nameThree, fenshuThree from tb
    union
    select nameFour, fenshuFour from tb
    union
    select nameFive, fenshuFive from tb
     )

    group by name
    order by fenshu ) a
    where rownum<6;
      

  4.   

    select a.name, a.fenshu
    from (
    select name, sum(fenshu) as fenshu
     from (
    select name, fenshu from tb
    union
    select nameTwo, fenshuTwo from tb
    union
    select nameThree, fenshuThree from tb
    union
    select nameFour, fenshuFour from tb
    union
    select nameFive, fenshuFive from tb
     )

    group by name
    order by sum(fenshu) ) a
    where rownum<6;
      

  5.   

    WITH tmp_score AS
     (SELECT NAME, fenshu
        FROM t_test_score
      UNION ALL
      SELECT nametwo, fenshutwo
        FROM t_test_score
      UNION ALL
      SELECT namethree, fenshuthree FROM t_test_score
      UNION ALL
      SELECT nameFour, fenshuFour FROM T_TEST_SCORE
    UNION ALL
      SELECT nameFive ,fenshuFive FROM T_TEST_SCORE)
    select * from(
    SELECT NAME, SUM(fenshu) s_score
      FROM tmp_score
     GROUP BY NAME
     ORDER BY s_score DESC) where rownum<=5