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

如何对数据分组返回唯一行并按分组规则生成新列Col6

实现方案

核心逻辑说明

直接通过GROUP BY聚合即可实现需求,无需额外中间表:

  • 按Col3、Col4、Col5分组后,统计两个指标:
    • 组内Col1非空的总行数(COUNT函数统计列时会自动忽略NULL值)
    • 组内Col2非空的总行数
  • 若两个统计值都大于0,说明组内同时存在Col1、Col2有值的行,符合第一条规则,Col6赋值为1
  • 若其中一个统计值为0,说明组内所有行只有同一列有值,符合第二条规则,Col6赋值为2

通用SQL实现(适配MySQL、SQL Server、PostgreSQL等绝大多数数据库)

SELECT 
    Col3,
    Col4,
    Col5,
    CASE 
        WHEN COUNT(Col1) > 0 AND COUNT(Col2) > 0 THEN 1
        ELSE 2
    END AS Col6
FROM 你的实际表名
GROUP BY Col3, Col4, Col5;

封装为存储过程needed示例(以MySQL为例)

DELIMITER //
CREATE PROCEDURE needed()
BEGIN
    SELECT 
        Col3,
        Col4,
        Col5,
        CASE 
            WHEN COUNT(Col1) > 0 AND COUNT(Col2) > 0 THEN 1
            ELSE 2
        END AS Col6
    FROM 你的实际表名
    GROUP BY Col3, Col4, Col5;
END //
DELIMITER ;

调用方式:CALL needed();

结果验证

用你提供的测试数据运行后,返回结果和预期完全一致:

Col3Col4Col5Col6
AA1AA101
BB1BB212

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.28 06:36:06