SQL-基于两列选择最新的唯一

SQL-基于两列选择最新的唯一,sql,db2,unique,distinct,Sql,Db2,Unique,Distinct,我在DB2仓库表中有一个名为TEST的表: DATETIME NAME TYPE ANOMALY CRE_DATE 0 2018-03-05 14:50:30 TEST UV 0 2018-03-03 12:48:10.058288 1 2018-03-05 14:51:30 TEST UV 0 2018-03-03 12:50:38.574614 2 2018-03-05 14:51:30 T

我在DB2仓库表中有一个名为TEST的表:

    DATETIME                NAME  TYPE ANOMALY  CRE_DATE
0   2018-03-05 14:50:30     TEST    UV  0   2018-03-03 12:48:10.058288
1   2018-03-05 14:51:30     TEST    UV  0   2018-03-03 12:50:38.574614
2   2018-03-05 14:51:30     TEST    UV  0   2018-03-03 12:52:01.705416
3   2018-03-05 14:51:30     TEST    UV  0   2018-03-05 13:45:56.937965
我要做的是选择最新的行(基于
CRE_DATE
),其中
DATETIME>=(当前日期-3天)
NAME='TEST'
。我尝试从该查询开始,但无法使其工作:

SELECT 
    DISTINCT DATETIME, 
    NAME, 
    TYPE, 
    ANOMALY, 
    CRE_DATE 
FROM 
    ML_ANOMALY_EVALUATION 
WHERE 
    ANOMALY=FALSE AND 
    NAME='TEST' 
ORDER BY 
    CRE_DATE DESC

在DB2中,最简单的方法是使用
行数()


非常好,谢谢你!只需移除mae。从子菜单中选择,因为您没有在@GordonLinoff处使用该别名
SELECT mae.*
FROM (SELECT mae.*,
             ROW_NUMBER() OVER (PARTITION BY datetime ORDER BY CRE_DATE DESC) as seqnum
      FROM ML_ANOMALY_EVALUATION mae
      WHERE ANOMALY = FALSE AND NAME = 'HOG.683KQC206' 
     ) mae
WHERE seqnum = 1
ORDER BY CRE_DATE DESC;