SQL:选择查询的倒数

时间:2018-10-26 13:35:30

标签: sql

我有此查询,我想选择此查询的 (无关紧要。

SELECT*
FROM input1
LEFT OUTER JOIN (
    SELECT MAX(Ref) AS Ref, Nomlatin, Lieudit, Commune
    FROM input1
    GROUP BY Nomlatin, Lieudit, Commune
) as t1 
ON input1.Ref = t1.Ref
WHERE t1.Ref IS NULL

我已经搜索了该问题的答案,但没有成功使用NOT IN

如果有人可以帮助我,那就太好了。

谢谢

2 个答案:

答案 0 :(得分:0)

好吧,您最后有WHERE子句,该子句过滤了IS NULL的最终结果集中的所有内容。

如果将IS NULL替换为IS NOT NULL,则将返回其相反或相反的结果。

SELECT*
FROM input1
LEFT OUTER JOIN (
    SELECT MAX(Ref) AS Ref, Nomlatin, Lieudit, Commune
    FROM input1
    GROUP BY Nomlatin, Lieudit, Commune
) as t1 
ON input1.Ref = t1.Ref
WHERE t1.Ref IS NOT NULL -- minor change here

答案 1 :(得分:0)

我会使用 correlated subquery来做到这一点:

SELECT i.*
FROM input1 i
WHERE Ref = (SELECT MAX(i1.Ref) 
             FROM input1 i1 
             WHERE i1.Nomlatin = i.Nomlatin AND i1.Lieudit = i.Lieudit, i1.Commune = i.Commune
            );