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

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

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

    posts - 495,comments - 227,trackbacks - 0

    我們經(jīng)常會(huì)有這樣的需求,即按照地區(qū)來分別取出每個(gè)地區(qū)排名前3的那些記錄。本文總結(jié)了幾種方法,希望大家補(bǔ)充。

     

    首先,創(chuàng)建測試用的表和數(shù)據(jù),如下:

     

    create table test

    (

    areaid int,

    score int

    )

    insert into test select 0,10

    union all select 0,20

    union all select 0,30

    union all select 0,40

    union all select 0,50

    union all select 1,10

    union all select 1,20

    union all select 1,30

    union all select 1,40

    union all select 1,50

    union all select 2,10

    union all select 2,20

    union all select 2,30

    union all select 2,40

    union all select 2,50

    go

     

    第一種方法適用于sql2000和2005,其代碼如下:

     

    select * from test a

    where checksum(*) in (select top 3 checksum(*) from test b where a.areaid=b.areaid order by score desc)

     

    第二種方法是利用sql2005的函數(shù)ROW_NUMBER,其代碼如下:

     

    WITH test1 AS

    (

        SELECT *,

        ROW_NUMBER() OVER (PARTITION BY areaid ORDER BY score desc) AS 'RowNumber'

        FROM test

    )

    SELECT *

    FROM test1

    WHERE RowNumber BETWEEN 1 AND 3;

     

    第三種方法是利用sql2005的cross apply來實(shí)現(xiàn),其代碼如下:

     

    select distinct t.* from test a

    cross apply

    (select top 3 areaid,score from test

    where a.areaid=areaid order by score desc) as T

    posted on 2012-06-07 15:12 SIMONE 閱讀(500) 評(píng)論(0)  編輯  收藏 所屬分類: SQL SERVER
    主站蜘蛛池模板: 日本免费一区二区久久人人澡| 亚洲一区二区女搞男| 日韩免费高清播放器| 亚洲av纯肉无码精品动漫| 亚洲熟妇av一区二区三区下载| 中文字幕日韩亚洲| 国产精品久久免费视频| 四虎永久在线精品免费观看视频| 中文字幕免费不卡二区| 日本激情猛烈在线看免费观看 | 中文字幕视频免费在线观看| 亚洲色一区二区三区四区| 亚洲成年人电影网站| 亚洲国产高清人在线| 国产亚洲综合色就色| 亚洲国产一区二区三区| 国产精品视频免费一区二区三区| 久久久久国色AV免费看图片| 亚洲免费观看在线视频| 8x网站免费入口在线观看| 日本免费在线中文字幕| 久草视频在线免费看| 91亚洲国产成人精品下载| 久久精品国产免费观看| 亚洲专区中文字幕| 国产麻豆视频免费观看| 西西人体大胆免费视频| 久久99亚洲综合精品首页 | 在线观看亚洲网站| 亚洲免费中文字幕| 色老板亚洲视频免在线观| 国产大片线上免费观看| 亚洲国产乱码最新视频| 亚洲国产精品无码久久九九| 香蕉免费一级视频在线观看 | 亚洲酒色1314狠狠做| 日韩黄色免费观看| 亚洲视频免费播放| 91国内免费在线视频| 亚洲av无码成人影院一区| 亚洲福利电影一区二区?|