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

基于Table1选中产品生成Table2产品销售汇总的实现方案咨询

现有数据表格

Table1:选中产品列表

lineproduct
1a
2b
3d

Table2:产品销售数据

abcd
lsmxs
xssxsm
mxlsl
xsxlmxl
xsxlls
xsmxll
mmll
smml
需求说明

基于Table1中的选中产品(a、b、d),汇总Table2中对应产品的各尺码出现次数,生成包含product、sizes、qty的汇总表,预期结果如下:

预期结果表

productsizesqty
al1
axs4
am2
as1
bs2
bxl3
bm3
dxs1
dm1
dl4
dxl1
ds1
技术方案建议

方案1:SQL实现(数据库存储场景)

如果数据存在数据库中,通过列转行+关联筛选+分组统计实现:

  1. 将Table2的列结构转为行结构,把每个产品的尺码拆成单独行记录
  2. 关联Table1筛选出选中的产品
  3. 按产品和尺码分组统计数量

示例SQL代码(MySQL环境,用UNION ALL模拟列转行):

SELECT 
    t.product,
    t.size AS sizes,
    COUNT(*) AS qty
FROM (
    SELECT 'a' AS product, a AS size FROM Table2
    UNION ALL
    SELECT 'b' AS product, b AS size FROM Table2
    UNION ALL
    SELECT 'd' AS product, d AS size FROM Table2
) t
JOIN Table1 ON t.product = Table1.product
GROUP BY t.product, t.size
ORDER BY t.product, t.size;

方案2:Python Pandas实现(数据分析场景)

用Pandas的melt函数做列转行,再筛选分组统计:

import pandas as pd

# 构造数据(实际场景可从文件/数据库读取)
table1 = pd.DataFrame({'line': [1,2,3], 'product': ['a','b','d']})
table2 = pd.DataFrame({
    'a': ['l','xs','m','xs','xs','xs','m','s'],
    'b': ['s','s','xl','xl','xl','m','m','m'],
    'c': ['m','xs','s','m','l','xl','l','m'],
    'd': ['xs','m','l','xl','s','l','l','l']
})

# 列转行并筛选选中产品
melted_data = table2.melt(var_name='product', value_name='sizes')
selected_products = table1['product'].tolist()
filtered_data = melted_data[melted_data['product'].isin(selected_products)]

# 分组统计数量
result = filtered_data.groupby(['product', 'sizes']).size().reset_index(name='qty')
print(result)

方案3:Excel操作(办公场景)

  1. 列转行处理:把Table2的a、b、d列分别复制到新工作表的两列,第一列填对应产品名,第二列填尺码数据
  2. 筛选有效数据:用Table1的产品列表做筛选,只保留a、b、d的记录
  3. 数据透视表汇总:插入数据透视表,行字段选择product和sizes,值字段选择sizes并设置为计数

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.03 17:51:29