You need to enable JavaScript to run this app. PostgreSQL如何筛选每位作者第三部出版作品的库存副本数量
优惠活动
大模型
产品
解决方案
定价
更多

PostgreSQL如何筛选每位作者第三部出版作品的库存副本数量

PostgreSQL 实现方案

该需求完全可以通过SQL查询实现,借助PostgreSQL内置的窗口函数即可快速完成,具体实现如下:

核心SQL代码

WITH ranked_works AS (
    SELECT
        author_id,
        title,
        number_of_copies,
        ROW_NUMBER() OVER (
            PARTITION BY author_id
            ORDER BY published ASC, id ASC
        ) AS release_order
    FROM 实际表名 -- 替换为你的数据表名
)
SELECT author_id, title, number_of_copies
FROM ranked_works
WHERE release_order = 3;

逻辑说明

  • 用PARTITION BY author_id把所有作品按作者划分分组,每个作者的作品单独计算发布顺序
  • 分组内的排序规则完全匹配需求:优先按published出版年份升序排列,同一作者同年份发布的作品按id升序确定先后
  • 窗口函数ROW_NUMBER()会为每个分组内的记录生成连续的序号,筛选序号等于3的记录,就是对应作者的第三部发布作品

如果你需要对最终返回的结果再做排序,可以在查询末尾追加ORDER BY子句自定义排序规则即可。

内容的提问来源于stack exchange,提问作者Hex4Bin

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.16 22:45:07