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

技术问询:如何查询数据表中被分配到多个订单的barcode

查询被分配至多个订单的条码记录

问题需求

从包含barcode(条码)和ord_no(订单号)的数据表中,筛选出所有被分配到多个不同订单的条码的完整记录。

示例数据表

barcodeord_no
12331
12342
12333
12354
12365
12376
12357
12388

预期输出结果

barcodeord_no
12331
12333
12354
12357

解决方案

方法一:分组筛选 + 关联查询

先通过分组找出关联多个订单的条码,再匹配原表获取完整记录:

SELECT t.barcode, t.ord_no
FROM your_table t
JOIN (
    SELECT barcode
    FROM your_table
    GROUP BY barcode
    HAVING COUNT(DISTINCT ord_no) > 1
) dup ON t.barcode = dup.barcode
ORDER BY t.barcode, t.ord_no;
  • 子查询负责筛选出订单数大于1的条码
  • 通过JOIN关联原表,得到这些条码的所有订单记录
  • COUNT(DISTINCT ord_no)确保统计的是不同订单数量,避免同一订单重复记录的干扰

方法二:窗口函数(适用于MySQL 8+、PostgreSQL、SQL Server等)

利用窗口函数直接计算每个条码的关联订单数,再筛选目标记录:

SELECT barcode, ord_no
FROM (
    SELECT 
        barcode, 
        ord_no,
        COUNT(DISTINCT ord_no) OVER (PARTITION BY barcode) AS order_count
    FROM your_table
) t
WHERE order_count > 1
ORDER BY barcode, ord_no;
  • PARTITION BY barcode按条码分组,计算每组内的订单数量
  • 外层查询直接筛选出订单数大于1的记录,无需额外关联,大数据量下性能更优

注意:将代码中的your_table替换为你的实际数据表名称。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.17 04:35:37