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

MySQL:使用GROUP BY基于行级项创建含Manufacture列的视图VIEW_A

实现MySQL视图VIEW_A的方案

核心思路

先将manf列的空值统一视为'A',再按order_no分组,根据组内manf的取值组合匹配规则返回对应结果:

  • 组内仅含'A'(含原空值)→ 返回'A'
  • 组内仅含'B' → 返回'B'
  • 组内同时存在'A'和'B' → 返回'Mixed'

具体SQL语句

CREATE VIEW VIEW_A AS
SELECT 
    order_no,
    CASE
        -- 组内全为B的情况
        WHEN COUNT(DISTINCT COALESCE(manf, 'A')) = 1 AND MAX(COALESCE(manf, 'A')) = 'B' THEN 'B'
        -- 组内同时存在A和B的情况
        WHEN COUNT(DISTINCT COALESCE(manf, 'A')) > 1 THEN 'Mixed'
        -- 剩余情况:组内仅含A(含原空值)
        ELSE 'A'
    END AS Manufacture
FROM 
    your_table_name  -- 替换为实际的表名
GROUP BY 
    order_no;

逻辑说明

  1. COALESCE(manf, 'A'):将manf的空值转换为'A',符合规则中空值等价于'A'的要求
  2. COUNT(DISTINCT ...):统计分组后去重的manf取值数量,判断是否存在多类型
  3. MAX(COALESCE(manf, 'A')):当去重后仅有一种取值时,确认是'B'还是'A'

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.18 15:40:29