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

SQL如何按类型筛选行并对产品表ID-Color-Size组合去重保留目标条码

多表关联SQL去重解决方案

核心实现逻辑

  • 按照Id、Color、Size三个字段对数据行分组,每组对应唯一的ID-Color-Size组合
  • 组内行设置优先级:Barcode以5205开头的行优先级高于其他行
  • 每组仅保留优先级最高的1行,不存在5205前缀Barcode的组则保留原有行,最终得到符合要求的唯一结果

查询结果SQL(通用所有支持窗口函数的数据库,如MySQL8.0+、PostgreSQL、SQL Server等)

SELECT Id, Color, Size, Barcode
FROM (
    SELECT 
        *,
        ROW_NUMBER() OVER (
            PARTITION BY Id, Color, Size 
            ORDER BY CASE WHEN Barcode LIKE '5205%' THEN 1 ELSE 2 END ASC
        ) AS rank_num
    FROM 你的产品表名
) temp_table
WHERE rank_num = 1;

直接删除表中重复数据的SQL(MySQL适用)

如果需要直接清理原表的重复数据,可使用以下语句,只会删除存在5205前缀Barcode的分组里的其他重复行,不会影响无5205前缀的分组:

DELETE t1
FROM 你的产品表名 t1
INNER JOIN 你的产品表名 t2
  ON t1.Id = t2.Id 
  AND t1.Color = t2.Color 
  AND t1.Size = t2.Size
WHERE 
  t2.Barcode LIKE '5205%' 
  AND t1.Barcode NOT LIKE '5205%';

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.05 05:45:03