我有以下情况:

我试图实现的是一个SQL-Standard语句,它为我提供了每一行"AAA“/ "BBB”,以及第4列中只有一个匹配项时的日期(按组排列)不是NULL。另一方面,如果有匹配,则在第4列中,对于每一行都没有一个是NULL。与之匹配的每一行都为空。
产出应是:

我希望我的意思是清楚的?
谢谢你们!
编辑:尝试过艾萨克斯的解决方案,并对我进行了一些编辑:
SELECT DISTINCT a.* FROM TABLE a
INNER JOIN
(
SELECT COL_1, COL_2 FROM TABLE WHERE COL_4 is null
) b ON a.COL_1 = b.COL_1 AND a.COL_2 = b.COL_2发布于 2018-04-19 15:10:28
从你的编辑开始,我就删除了我以前的答案。我希望我把你的问题说对了。
select a.* from table a
join
(
select col1, colb from table where col3 is null
) b on a.col1 = b.col1 and a.col2 = b.col2发布于 2018-04-19 16:03:02
嗯。如果我正确理解,您可以使用窗口函数:
select col1, col2, col3, col4
from (select t.*,
sum(case when col4 = 'XXX' then 1 else 0 end) over (partition by col1, col)
from t
) t
where col4 is null or cnt = 1;这将移除具有多个"XXX“列的col1/col2对。
https://stackoverflow.com/questions/49924388
复制相似问题