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

SQL实现数据集标签提取及按标签类别汇总方法咨询

SQL多标签分类汇总实现思路

你已经完成了Meal字段拆分为单行订单项的前置操作,后续按以下3个步骤执行即可得到最终汇总结果:

  • 步骤1:给订单项匹配对应标签
    优先建议先维护一张标签规则映射表,表中至少存储「匹配关键词」和「对应标签名」两个字段,例如关键词"有机沙拉"对应标签VeganFriendly、关键词"气泡水"对应标签Softdrink。通过字符串包含逻辑关联拆分后的订单项表和规则表,即可为每个订单项打上匹配的标签,同一个订单项命中多个规则时会自动生成多条对应标签记录,刚好满足单条数据多标签的需求。
    通用SQL示例(不同数据库字符串匹配函数可自行替换,比如INSTR、POSITION等):
    SELECT 
      拆分表.订单ID,
      拆分表.订单项,
      规则表.标签名
    FROM 拆分后订单项表 拆分表
    INNER JOIN 标签规则映射表 规则表
      ON 拆分表.订单项 LIKE CONCAT('%', 规则表.匹配关键词, '%')
    
  • 步骤2:按订单维度对标签去重
    同一订单可能存在多个订单项命中同一个标签的情况,比如订单同时买了可乐和雪碧都匹配到Softdrink标签,汇总时需保证同一订单的同一标签仅统计一次,因此需要按订单ID和标签名去重:
    SELECT DISTINCT 订单ID, 标签名
    FROM 第一步得到的标签匹配结果表
    
  • 步骤3:按标签分组做汇总统计
    最后按标签分组,结合你的业务需求统计对应指标即可,例如统计每个标签关联的订单数、总金额等:
    SELECT 
      标签名 AS 分类名称,
      COUNT(DISTINCT 订单ID) AS 关联订单总量,
      SUM(原始表.订单金额) AS 分类总交易额
    FROM 第二步得到的去重标签表 标签表
    LEFT JOIN 原始订单表 原始表
      ON 标签表.订单ID = 原始表.订单ID
    GROUP BY 标签名
    ORDER BY 关联订单总量 DESC
    

若你的标签规则数量较少,也可以跳过搭建规则表的步骤,直接用CASE WHEN语句在第一步写死匹配规则,再通过列转行逻辑把多标签转换为多行结构即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.29 04:27:03