首页 > 解决方案 > Oracle Sql Query 查找具有属性值但同时没有差异值的 id

问题描述

在此处输入图像描述

嗨团队,我需要一个简单的查询,我可以在其中找到合同状态 ='C' 的合作伙伴 ID,它在“A”和“B”中没有任何合同状态。我需要找到第 3 行的合作伙伴 id,因为合作伙伴 id 2 没有任何 A 或 B 合同状态。同样,我想过滤合同状态为“A”或“B”但没有合同状态的合作伙伴 id 'C' 。也就是说,我需要第 5,6 行的合作伙伴 ID。提前致谢

标签: sqloraclewhere-clausehaving-clause

解决方案


另一种选择是使用分析函数MAX,如下所示:

SELECT *
  FROM (SELECT T.*,
               MAX(STATUS) OVER(PARTITION BY PARTNERID) AS MAX_STATUS
          FROM T)
WHERE MAX_STATUS = 'A';

推荐阅读