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

Oracle数据库中提取共享同一邮箱的唯一partyID

Oracle提取共享同一邮箱的唯一PartyID

聚合式输出(每个邮箱对应所有关联PartyID)

如果希望每个邮箱一行,同时列出所有共享该邮箱的partyID,可以使用LISTAGG函数实现:

SELECT email,
       LISTAGG(partyID, ', ') WITHIN GROUP (ORDER BY partyID) AS party_ids
FROM your_table_name
WHERE email IN (
    -- 筛选出存在多个不同PartyID的邮箱
    SELECT email
    FROM your_table_name
    GROUP BY email
    HAVING COUNT(DISTINCT partyID) > 1
)
GROUP BY email
ORDER BY email;

逐条式输出(每行一个邮箱+单个PartyID)

如果需要以每行一条记录的形式展示共享邮箱的partyID和邮箱地址,使用关联查询:

SELECT DISTINCT t.partyID, t.email
FROM your_table_name t
INNER JOIN (
    SELECT email
    FROM your_table_name
    GROUP BY email
    HAVING COUNT(DISTINCT partyID) > 1
) duplicate_emails 
    ON t.email = duplicate_emails.email
ORDER BY t.email, t.partyID;

注意事项

  • 将语句中的your_table_name替换为你实际使用的表名
  • LISTAGG函数适用于Oracle 11g及以上版本,若使用更低版本可改用WM_CONCAT(需注意兼容性)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.13 04:03:20