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

Python pandas groupby与agg聚合操作转换为PostgreSQL SQL实现方案

等效PostgreSQL查询实现

你给出的pandas分组聚合逻辑可以直接用标准SQL的GROUP BY + 聚合函数实现,和pandas执行结果完全一致:

SELECT 
    "Region",
    "State",
    "CO_FIPS",
    "Tiermetric_Prelim",
    "Mod_unMod_Prelim",
    "Val_Combined_Prelim",
    "Det_Approx_Prelim",
    "Decay_Date_Prelim",
    SUM("Actual_Miles_Prelim") AS "Actual_Miles_Prelim"
FROM cnms_table
GROUP BY 
    "Region",
    "State",
    "CO_FIPS",
    "Tiermetric_Prelim",
    "Mod_unMod_Prelim",
    "Val_Combined_Prelim",
    "Det_Approx_Prelim",
    "Decay_Date_Prelim";

逻辑对应说明

  • pandas中groupby传入的分组字段列表,直接对应SQL的GROUP BY后跟随的字段列表
  • pandas中agg({'Actual_Miles_Prelim': 'sum'})的聚合逻辑,对应SQL的SUM("Actual_Miles_Prelim"),别名保持原列名和pandas输出结构完全对齐
  • pandas中的as_index=False参数不需要在SQL中做额外处理,SQL默认会把SELECT列表中的分组字段作为普通列返回

简化写法&持久化存储

如果需要直接把聚合结果保存为新表,可以用CREATE TABLE AS语法,同时GROUP BY可以用字段在SELECT中的位置指代,简化写法:

CREATE TABLE sum_df_prelim AS
SELECT 
    "Region",
    "State",
    "CO_FIPS",
    "Tiermetric_Prelim",
    "Mod_unMod_Prelim",
    "Val_Combined_Prelim",
    "Det_Approx_Prelim",
    "Decay_Date_Prelim",
    SUM("Actual_Miles_Prelim") AS "Actual_Miles_Prelim"
FROM cnms_table
GROUP BY 1,2,3,4,5,6,7,8;

注意:以上语句给所有字段加了双引号,是为了兼容PostgreSQL大小写敏感的字段命名规则,如果你建表时字段都是全小写,可删除所有双引号简化语句。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.30 21:15:03