<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    yeafee@夜飛郎

    it's usually better to solve problems with simplicity and finesse rather than muscle.

      BlogJava :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理 ::
      33 隨筆 :: 3 文章 :: 2 評論 :: 0 Trackbacks
    原發:http://hi.baidu.com/yeafee/blog/item/cc377dd978991ee838012fe2.html
    表內存結構及數據如下:
    CREATE?TABLE?`tscore`?(
    ????`student`?
    varchar(20)?default?NULL,
    ????`subject`?
    varchar(20)?default?NULL,
    ????`score`?
    int(11)?default?NULL
    )?ENGINE
    =MyISAM?DEFAULT?CHARSET=utf8;

    /*?Data?for?the?`tscore`?table????(Records?1?-?6)?*/
    INSERT?INTO?`tscore`?(`student`,?`subject`,?`score`)?VALUES
    ????(
    'B',?'Maths',?87),
    ????(
    'A',?'Maths',?88),
    ????(
    'C',?'Maths',?86),
    ????(
    'A',?'Language',?81),
    ????(
    'B',?'Language',?55),
    ????(
    'A',?'Chemistry',?77);

    根據下列要求,寫出相應的SQL語句:

    a.??????統計每個學生所有課程的平均成績
    select?student,avg(score)?from?tscore?group?by?student;

    b.?????統計每門課程所有學生的平均成績


    select?subject,avg(score)?from?tscore?group?by?subject;

    c.?????構建具有如下結構的結果集:學生姓名 A課程成績 B課程成績 C課程成績。不可以使用子查詢


    Oracle HowTo:如何使用Oracle的Decode函數進行多值判斷



    Oracle:

    select?t.subject,
    ?????????
    sum(decode(t.subject,?'A',?t.score,?0))?as?score_a,
    ?????????
    sum(decode(t.subject,?'B',?t.score,?0))?as?score_b,
    ?????????
    sum(decode(t.subject,?'C',?t.score,?0))?as?score_c
    from?????score?t
    group?by?t.student

    MySQL:

    select?student,
    sum(case?when?subject='Maths'?then?score?end)?as?score_maths,
    sum(case?when?subject='Language'?then?score?end)?as?score_language,
    sum(case?when?subject='Chemistry'?then?score?end)????as?score_chemistry
    from?tscore
    group?by?student;

    select?distinct?(a.student),b.score?as?maths,c.score?as?Language,d.score?as?Chemistry
    from?tscore?a
    left?join?tscore?b?on?a.student=b.student?and?b.subject='Maths'
    left?join?tscore?c?on?a.student=c.student?and?c.subject='Language'
    left?join?tscore?d?on?a.student=d.student?and?d.subject='Chemistry'
    order?by?a.student;


    d.?????假設60分為及格,統計每門課程參加考試的學生的數量,及格的學生數,以及通過率(在一條SQL語句中)


    Oracle:

    select?a.*,?a.pass_count/a.total_count?as?pass_rate
    from?(select????t.subject,?count(t.subject)?as?total_count,?sum(decode(sign(t.score-60),1,1[,0,1,]0))?as?pass_count
    from??????score?t
    group?????by?t.subject)?a

    MySQL:

    select?a.*,a.passCount/a.totalCount?as?passRate?from
    (
    select?subject,COUNT(subject)?as?totalCount,sum(case?when?(sign(score-60)>=0)?then?1?end)?as?passCount
    from?tscore
    group?by?subject
    )a;


    Oracle SQL 內置函數大全(一)(二)(三)


    SIGN
    取數字n的符號,大于0返回1,小于0返回-1,等于0返回0
    SQL> select sign(123),sign(-100),sign(0) from dual;

    SIGN(123) SIGN(-100)?? SIGN(0)
    --------- ---------- ---------
    1???????? -1???????? 0

    INSERT INTO .. .SELECT...FROM復制

    CREATE?TABLE?tmp_user?AS?select?*?from?user?where?1=2;
    INSERT INTO user SELECT * FROM tmp_user;
    posted on 2007-07-11 11:02 @yeafee 閱讀(223) 評論(0)  編輯  收藏 所屬分類: 數據庫
    主站蜘蛛池模板: 无码不卡亚洲成?人片| 亚洲国产综合精品中文第一| 久久综合九九亚洲一区| 丁香婷婷亚洲六月综合色| h视频在线免费观看| 无码专区永久免费AV网站| 亚洲精品字幕在线观看| 精品国产日韩亚洲一区91| 成人黄色免费网站| 亚洲爆乳精品无码一区二区三区 | 日本中文一区二区三区亚洲| 黄色毛片免费观看| 一本无码人妻在中文字幕免费 | 亚洲人成电影在线播放| 亚洲香蕉久久一区二区三区四区| 永久免费av无码网站韩国毛片| 亚洲欧美黑人猛交群| 亚洲视频在线观看免费视频| 亚洲裸男gv网站| AAA日本高清在线播放免费观看| 亚洲国产成人五月综合网 | 国产亚洲精久久久久久无码| 久久免费公开视频| 亚洲欧洲国产精品香蕉网| 免费无毒a网站在线观看| 日韩在线天堂免费观看| 亚洲国产乱码最新视频| 国产午夜鲁丝片AV无码免费| 亚洲色成人网站WWW永久四虎| 青青视频观看免费99| 亚洲明星合成图综合区在线| 久久亚洲免费视频| 亚洲永久在线观看| 亚洲伊人久久成综合人影院| yellow视频免费在线观看| 亚洲日韩国产一区二区三区| 99久久免费观看| 亚洲在成人网在线看| 免费在线观看黄网站| eeuss影院免费直达入口| 亚洲人成电影在线观看青青|