zoukankan      html  css  js  c++  java
  • 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 序号

  • 相关阅读:
    2014-04-23 总结
    14-5-13
    PHP
    14-5-8
    ajax
    14-5-6
    14-5-5
    PHP初解
    14-4-30
    14-4-29
  • 原文地址:https://www.cnblogs.com/SeNaiTes/p/11540524.html
Copyright © 2011-2022 走看看