Sql获取除一列之外所有列都匹配的不同行

Sql获取除一列之外所有列都匹配的不同行,sql,Sql,嗨,我有代码,它给我的输出如下。它在两个不同的日期检查数据,即kry函数,它是一个varchar字段 使用where键输入('Abc26','Abc27') 键代码col1 col2 col3 Abc27 esp 4 54 73 Abc26 esp 3 54 32 Abc27澳元233277 Abc27港币37 2 3 我需要输出为仅1行,但前提是数据应同时出现在两天内,即Abc27和Abc26,但仅显示最新的一行,即Abc27行 所需输出 键代码col1 col2 col3 Abc27 es

嗨,我有代码,它给我的输出如下。它在两个不同的日期检查数据,即kry函数,它是一个varchar字段

使用where键输入('Abc26','Abc27')

键代码col1 col2 col3
Abc27 esp 4 54 73
Abc26 esp 3 54 32
Abc27澳元233277
Abc27港币37 2 3
我需要输出为仅1行,但前提是数据应同时出现在两天内,即Abc27和Abc26,但仅显示最新的一行,即Abc27行

所需输出

键代码col1 col2 col3
Abc27 esp 4 54 73

您可以对相关子查询使用
EXISTS

SELECT t.*
FROM table t
WHERE EXISTS (SELECT 1 FROM table t1 WHERE t1.code = t.code AND t1.key <> t.key) AND
      t.key = (SELECT MAX(t1.key) FROM table t1 WHERE t1.code = t.code);

但是你给我们看的匹配记录有一个对应的两列,而不是一列,它们不一致。你能修复你的数据吗?两天?我看不到日期/天数。你怎么知道最近一行是什么?如果有好几天,但有差距呢?另外,提供一个数据库标记。
SELECT t.*
FROM (SELECT t.*, COUNT(*) OVER (PARTITION BY code) AS Code_cnt,
             ROW_NUMBER() OVER (PARTITION BY code ORDER BY key DESC) AS seq
      FROM table t
     ) t
WHERE Code_cnt > 1 AND seq = 1;