[英]SQL - Select latest unique based on two columns
I have this table called TEST in a DB2 Warehouse table:我在 DB2 Warehouse 表中有一个名为 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
What I want to do is select the latest rows (based on CRE_DATE
) with a distinct value of DATETIME
where DATETIME is >= (CURRENT DATE -3 DAYS)
and NAME='TEST'
.我想要做的是选择具有不同
DATETIME
值的最新行(基于CRE_DATE
),其中DATETIME is >= (CURRENT DATE -3 DAYS)
和NAME='TEST'
。 I tried to start with this query but I can't get it to work:我试图从这个查询开始,但我无法让它工作:
SELECT
DISTINCT DATETIME,
NAME,
TYPE,
ANOMALY,
CRE_DATE
FROM
ML_ANOMALY_EVALUATION
WHERE
ANOMALY=FALSE AND
NAME='TEST'
ORDER BY
CRE_DATE DESC
In DB2, the simplest way is to use row_number()
:在 DB2 中,最简单的方法是使用
row_number()
:
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;
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.