Return Netezza 中每个组的最大值日期 SQL

Return Max Value Date for each group in Netezza SQL

+--------+---------+----------+------------+------------+
| CASEID | USER ID | TYPE     |   OPEN_DT  |  CLOSED_DT |
+--------+---------+----------+------------+------------+
|      1 |    1000 |  MA      | 2017-01-01 | 2017-01-07 |
|      2 |    1000 |  MB      | 2017-07-15 | 2017-07-22 |
|      3 |    1000 |  MA      | 2018-02-20 | NULL       |
|      8 |    1001 |  MB      | 2017-05-18 | 2018-02-18 |
|      9 |    1001 |  MA      | 2018-03-05 | 2018-04-01 |
|      7 |    1002 |  MA      | 2018-06-01 | 2018-07-01 |
+--------+---------+----------+------------+------------+

这是我的数据集的一个片段。我需要一个查询,returns 只是 Netezza SQL.

中每个 USER_ID 的最大(OPEN_DT)行

所以鉴于上述结果将是:

 | CASEID | USERID |  TYPE | OPEN_DT    |  CLOSED_DT |
 | 3      |  1000  |  MA   | 2018-02-20 | NULL       |
 | 9      |  1001  |  MA   | 2018-03-05 | 2018-04-01 |
 | 7      |  1002  |  MA   | 2018-06-01 | 2018-07-01 |

非常感谢任何帮助!

你可以使用关联子查询:

select t.*
from table t
where open_dt = (select max(t1.open_dt) from table t1 where t1.user_id = t.user_id);

您也可以 row_number() :

select t.*
from (select *, row_number() over (partition by user_id order by open_dt desc) as seq
      from table t
      ) t
where seq = 1;

但是,如果您与 open_dt 有关系,那么您需要使用 limit 子句和相关子查询,但我不确定关系,所以我就放弃了。