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

如何提取customerID对应descript='refund'值,无对应值返回null?

需求说明

现有查询结果包含CustomerID和交易描述(transaction descrip)字段,需调整查询逻辑:

  • 提取所有CustomerID对应的descript='refund'值
  • 若该CustomerID无refund记录,则返回null值

当前查询结果示例

CustomerID ADescrip. B
1purchase
1refund
2refund
3purchase
4purchase

期望得到的结果示例

CustomerID ADescrip. B
1refund
2refund
3null
4null

实现方案(SQL示例)

方法1:分组+条件聚合

SELECT 
    CustomerID AS `CustomerID A`,
    MAX(CASE WHEN Descrip = 'refund' THEN 'refund' ELSE NULL END) AS `Descrip. B`
FROM 
    your_table_name
GROUP BY 
    CustomerID;

通过对每个CustomerID分组,用CASE语句筛选refund记录,MAX函数会保留存在的refund值,无匹配时返回NULL。

方法2:左连接实现

SELECT 
    c.CustomerID AS `CustomerID A`,
    r.Descrip AS `Descrip. B`
FROM 
    (SELECT DISTINCT CustomerID FROM your_table_name) c
LEFT JOIN 
    (SELECT CustomerID, 'refund' AS Descrip FROM your_table_name WHERE Descrip = 'refund') r
ON 
    c.CustomerID = r.CustomerID;

先提取所有唯一的CustomerID,再左连接仅包含refund记录的子表,未匹配的记录会自动填充NULL。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.14 22:35:57