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

如何针对指定场景合并表格行并处理业务代码缺失问题?

Solution to Clean Customer Business Data

看起来你需要整理客户的业务数据,按照给定的规则清理重复行并补全缺失的业务标记。这里是一个适配需求的解决方案,用SQL实现就能快速处理你的表格数据:

Original Input Table

CustIdNameAgeGenderBusinessCode
1John24MaleAutomobiles1
2Peter30MaleSpace3
2Peter30MaleITnull
3Kris48FemaleInfranull

SQL Implementation

我们可以用窗口函数标记每个客户的有效Code状态,再据此过滤和修改数据:

WITH customer_code_check AS (
    SELECT 
        *,
        -- 标记该客户是否存在非空的Code值
        MAX(CASE WHEN Code IS NOT NULL THEN 1 ELSE 0 END) OVER (PARTITION BY CustId) AS has_valid_code
    FROM your_table_name
)
SELECT 
    CustId,
    Name,
    Age,
    Gender,
    CASE 
        WHEN has_valid_code = 1 AND Code IS NOT NULL THEN Business
        WHEN has_valid_code = 0 THEN 'CodeNotAvailable'
    END AS Business,
    Code
FROM customer_code_check
-- 过滤掉有有效Code但当前行Code为空的冗余记录
WHERE has_valid_code = 0 OR Code IS NOT NULL;

Processed Output Table

CustIdNameAgeGenderBusinessCode
1John24MaleAutomobiles1
2Peter30MaleSpace3
3Kris48FemaleCodeNotAvailablenull

Logic Explanation

  1. 标记客户Code状态:通过窗口函数MAX() OVER (PARTITION BY CustId),给每个客户打上是否有有效Code的标记(has_valid_code=1表示存在非空Code,0表示所有行Code都是null)。
  2. 数据过滤与修改:
    • 对于有有效Code的客户,只保留Code非空的行,直接沿用原Business值;
    • 对于没有任何有效Code的客户,将Business字段替换为CodeNotAvailable,保留原Code的null值;
  3. 移除冗余行:过滤掉那些所属客户有有效Code,但当前行Code为空的记录(比如Peter的IT行)。

内容的提问来源于stack exchange,提问作者Vikram Babu Nagineni

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.08 14:07:26