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

如何在Shipment_INFO表中新增显示运单商品数量的列

无需临时表的SQL实现方案

直接使用窗口函数就能一步实现需求,不需要创建临时表或额外关联操作:

SELECT 
    ShipmentID,
    ItemID,
    COUNT(ItemID) OVER (PARTITION BY ShipmentID) AS Shipment_Size
FROM Shipment_INFO;

原理说明

  • PARTITION BY ShipmentID:将数据按ShipmentID分组,对每个分组单独计算统计值
  • COUNT(ItemID):因为ItemID是唯一值,统计每个分组内的ItemID数量就是该运单的商品总数
  • 窗口函数会把分组统计的结果映射到原表的每一行,直接生成包含Shipment_Size列的完整报表

数据验证

原表数据:

ShipmentIDItemID
1000120001
1000220002
1000220003
1000320004
1000420005
1000420006
1000420007
1000520008
1000520009
1000620010

执行上述SQL后得到的结果(与理想输出完全一致):

ShipmentIDItemIDShipment_Size
10001200011
10002200022
10002200032
10003200041
10004200053
10004200063
10004200073
10005200082
10005200092
10006200101

对比原思路的优势

相比先创建临时表再关联的方式,窗口函数方案更简洁,执行效率更高——避免了表关联的额外开销,尤其在数据量较大时表现更明显。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.01 23:35:20