You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

PostgreSQL如何对同表按where条件自连接查询多周统计数据

实现方案

你可以直接对statistic表做自关联查询,将过滤出的37周数据作为关联表匹配到同step_index的基础行即可,参考SQL如下:

SELECT 
    s1.step_index,
    s1.type,
    s1.year,
    s1.week,
    s1.total_request,
    s2.week AS week2,
    s2.total_request AS total_request2
FROM statistic s1
INNER JOIN statistic s2
    ON s1.step_index = s2.step_index
    AND s2.week = 37
-- 仅需要保留38周的基础数据就开启下面的过滤条件,需要展示所有周匹配37周的结果则删除
WHERE s1.week = 38
ORDER BY s1.step_index;

逻辑说明

  • 主表s1取你需要展示的基础数据,示例中是38周的所有行
  • 关联表s2提前过滤出所有周数为37的记录,通过step_index字段和主表做等值关联
  • 直接将s2的week、total_request字段重命名为你需要的week2、total_request2返回即可
  • 如果你不需要过滤主表的周数,删除WHERE s1.week = 38条件即可,所有周的行都会自动匹配对应step_index的37周数据

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.03 07:24:01