Mysql實現數據庫row_number()的寫法

以下是固定的寫法,實現其他邏輯按這個套路寫就好,將字段替換成你想分組查詢的字段即可

rank跟row_number()一樣,過濾分組排序後的數據

SELECT id, name, create_time, rank
FROM (
    SELECT b.id, b.name, b.create_time
        , @rownum := @rownum + 1
        , IF(@pdept = b.bar_code, @rank := @rank + 1, @rank := 1) AS rank
        , @pdept := b.bar_code
    FROM (
        SELECT id, name, create_time FROM tablename
        GROUP BY id,name
        ORDER BY id, name
    ) b, (
            SELECT @rownum := 0, @pdept := ''
                , @rank := 0
        ) c
) result
HAVING rank < 2;

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章