如何仅展示关联多个SubOrderNum的MOrderNum对应的全部子订单数据
多对应子订单的主订单数据筛选方案
以下是不同使用场景下的实现方法:
SQL 场景
先统计每个主订单编号对应的子订单数量,筛选出数量大于1的主订单后,关联原表取出所有关联数据即可,代码示例:
SELECT t.MOrderNum, t.SubOrderNum FROM 你的业务表名 t INNER JOIN ( SELECT MOrderNum FROM 你的业务表名 GROUP BY MOrderNum HAVING COUNT(DISTINCT SubOrderNum) > 1 ) filter ON t.MOrderNum = filter.MOrderNum
如果你的业务数据里不存在同一个主订单对应重复子订单编号的情况,可以把COUNT(DISTINCT SubOrderNum)简化为COUNT(*)。
Excel 场景
通过辅助列统计主订单对应子订单数量后筛选即可,操作步骤:
- 假设
MOrderNum在A列、SubOrderNum在B列,首行是表头,新增C列作为统计辅助列 - C2单元格输入公式
=COUNTIF(A:A,A2),下拉填充所有数据行 - 对C列做筛选,仅保留数值大于1的行即可得到目标结果
Python Pandas 场景
直接通过分组统计加布尔索引筛选,代码示例:
import pandas as pd # df为你的原始数据表对象 df = pd.read_excel("你的数据文件路径.xlsx") # 筛选符合要求的数据 result = df[df.groupby("MOrderNum")["MOrderNum"].transform("count") > 1]
如果需要去重统计子订单数量,把transform("count")替换为transform("nunique")即可。
内容的提问来源于stack exchange,提问作者ask99
相关产品推荐
相关产品推荐

