【发布时间】:2019-11-09 00:48:58
【问题描述】:
我正在尝试从 TRANS_TABLE 获取所有客户,无论他们是否有安装服务。
NOA- 查询仅获取 MAX 产品并通过电子邮件 ID 再次与 TRANS_TABLE 加入以获取所有 MAX 客户详细信息(无论他们是否通过添加 Y 或 N 来安装服务,但此查询也返回与 REP 产品重复的
下面是我的 Oracel 查询,它给出了重复的
with CTE as (SELECT NOA.*,
CASE
WHEN TRANS_TABLE.product_name LIKE '%Installation%' THEN 'Y'
ELSE 'N'
END AS Installaion ,
ROW_NUMBER() OVER (PARTITION BY TRANS_TABLE.email_address ORDER BY TRANS_TABLE.email_address) AS rn
FROM (SELECT DISTINCT email_address
FROM TRANS_TABLE
WHERE email_address IS NOT NULL
and pdct_name like '%MAX%'
) NOA
LEFT JOIN TRANS_TABLE
ON NOA.email_address = TRANS_TABLE.email_address
select * from cte where rn='1'
【问题讨论】:
-
这个不清楚。使用足够多的单词、句子和对部分示例的引用来清楚完整地表达你的意思。 PS请use text, not images/links, for text--including tables & ERDs.转述或引用其他文本。仅将图像用于无法表达为文本或增强文本的内容。无法搜索或剪切和粘贴图像。在图像中包含图例/键和说明。使您的帖子自成一体。使用编辑功能插入图片/链接。
-
请在代码问题中给出minimal reproducible example--剪切&粘贴&运行代码;具有期望和实际输出的示例输入(包括逐字错误消息);标签和明确的规范和解释。这包括您可以提供的最少代码,即您显示的代码可以通过您显示的代码扩展为不可以。 (调试基础。)对于包含 DBMS/产品和 DDL 的 SQL,其中包括约束和索引以及表格格式的基表初始化。请参阅How to Ask 和投票箭头鼠标悬停文本。
标签: oracle join duplicates