postgresql 取出分組中最大的幾條數據


WITH Name AS (
    SELECT
        *
    FROM
        (
            SELECT
                xzqdm,
                SUBSTRING (zldwdm, 1, 9) xzdm,
                COUNT (*) sl
            FROM
                sddltb_qc
            WHERE
                xzqdm IN ('130432', '210604')
            GROUP BY
                xzqdm,
                SUBSTRING (zldwdm, 1, 9)
        ) AS A
    ORDER BY
        xzqdm,
        xzdm,
        sl
) SELECT
    xzqdm,
    xzdm,
    sl
FROM
    (
        SELECT
            *, ROW_NUMBER () OVER (
                PARTITION BY xzqdm
                ORDER BY
                    sl DESC
            ) AS Row_ID
        FROM
            Name
    ) AS A
WHERE
    Row_ID <= 2
ORDER BY
    xzqdm

其中【select * from (select xzqdm,substring(zldwdm,1,9) xzdm,count(*) sl from sddltb_qc where xzqdm in ('130432','210604') group by xzqdm,substring(zldwdm,1,9)) as a order by xzqdm,xzdm,sl】執行結果:

添加行序號:ROW_NUMBER () OVER (ORDER BY A.bsm ASC) AS 序號

分組添加序號:ROW_NUMBER () OVER (PARTITION BY xzqdm ORDER BY A.bsm ASC) AS 序號

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM