日本搞逼视频_黄色一级片免费在线观看_色99久久_性明星video另类hd_欧美77_综合在线视频

國(guó)內(nèi)最全I(xiàn)T社區(qū)平臺(tái) 聯(lián)系我們 | 收藏本站
阿里云優(yōu)惠2
您當(dāng)前位置:首頁(yè) > 數(shù)據(jù)庫(kù) > 數(shù)據(jù)庫(kù)應(yīng)用 > Consecutive Numbers

Consecutive Numbers

來(lái)源:程序員人生   發(fā)布時(shí)間:2015-08-19 08:28:07 閱讀次數(shù):3283次
    Write a SQL query to find all numbers that appear at least three times consecutively.

    +----+-----+
    | Id | Num |
    +----+-----+
    | 1  |  1  |
    | 2  |  1  |
    | 3  |  1  |
    | 4  |  2  |
    | 5  |  1  |
    | 6  |  2  |
    | 7  |  2  |
    +----+-----+
    For example, given the above Logs table, 1 is the only number that appears consecutively for at least three times.
    解法1:
    參考[Rank Scores](http://blog.csdn.net/havedream_one/article/details/45395063)
    從上往下對(duì)齊排名,如果相等,則排名相等,不相等則排名加1
    代碼以下:
    select num,@curRank := @curRank+IF(@preNum = num,0,1) as rank ,@preNum:=num from logs s,(select @curRank := 0) r,(select @preNum := null) p;
    +------+------+--------------+
    | num  | rank | @preNum:=num |
    +------+------+--------------+
    |    1 |    1 |            1 |
    |    1 |    1 |            1 |
    |    1 |    1 |            1 |
    |    2 |    2 |            2 |
    |    1 |    3 |            1 |
    |    2 |    4 |            2 |
    |    2 |    4 |            2 |
    +------+------+--------------+
    如上所示,如果1個(gè)num的連續(xù)排名超過(guò)3則符合題意。
    select num,count(rank) as count from (
        select num,@curRank := @curRank+IF(@preNum = num,0,1) as rank ,@preNum:=num from logs s,(select @curRank := 0) r,(select @preNum := null) p ) t 
        group by rank;
    +------+-------+
    | num  | count |
    +------+-------+
    |    1 |     3 |
    |    2 |     1 |
    |    1 |     1 |
    |    2 |     2 |
    +------+-------+
    得到上述的表以后,再使用having條件選擇。
    終究結(jié)果:
    select distinct num from(
        select num,count(rank) as count from (
            select num,@curRank := @curRank+IF(@preNum = num,0,1) as rank ,@preNum:=num from logs s,(select @curRank := 0) r,(select @preNum := null) p ) t 
            group by rank having count >= 3;
        ) tmp;
    解法2:
    1、從第1條記錄搜索,前后相同,count++,不相等,count=1;
    2、判斷,若rank大于3則符合題意
    select distinct num 
        from ( 
            select num,@curRank := @preRank+IF(@preNum = num,1,0),@preRank :=IF(@preNum = num,@curRank,1) as rank,@preNum := num 
                from Logs s,(select @preRank := 1) r,(select @preNum := null) p
        ) t 
        where rank >= 3;
生活不易,碼農(nóng)辛苦
如果您覺(jué)得本網(wǎng)站對(duì)您的學(xué)習(xí)有所幫助,可以手機(jī)掃描二維碼進(jìn)行捐贈(zèng)
程序員人生
------分隔線----------------------------
分享到:
------分隔線----------------------------
關(guān)閉
程序員人生
主站蜘蛛池模板: 欧美日韩亚洲综合 | 国产在线视频网 | 国产伦精品一区二区三区照片91 | 欧美亚洲一二三 | 免费看黄色的网站 | 欧美精品一区二区三区视频 | www.日韩精品 | 91麻豆视频 | 久久精品9 | 欧美精品一区二区三区蜜臀 | 久久久久久免费 | 久久国产日韩 | 中文字幕精品久久久乱码 | 色婷婷香蕉在线一区二区 | 天天干狠狠干 | 国产精品久久久久久亚洲毛片 | a级片在线 | 欧洲成人午夜免费大片 | 久久亚洲一区 | 欧美福利视频 | 中文字幕国产精品 | 国产精品免费一区二区三区四区 | 国产一二三区免费视频 | 高潮白浆女日韩av免费看 | 国精品一区 | 香蕉久操 | 国产做爰免费视频观看 | 亚洲综合国产 | 成人性调教在线播放 | 麻豆传媒在线 | 爱爱网址 | 欧美日韩亚洲系列 | 日韩欧美综合在线视频 | 亚洲精品中文字幕在线 | 精品电影一区二区三区 | av毛片在线免费观看 | 疯狂做受xxxx国产 | 天天爽一爽 | 免费看黄a | 国产伦精品一区二区三区在线 | 国产二区精品 |