我有一个Oracle查询,我想在PARTITION上返回一个MAX(),同时包含NULL。
例如,如果原始数据是:
NAME | DATE ----------------------- ADAM | 01/21/14 00:00 ADAM | ADAM | 01/22/14 00:01 ADAM | 01/23/14 00:02
使用以下查询返回以下内容:
MAX(date) OVER (PARTITION BY name ORDER BY date)
NAME | DATE ----------------------- ADAM | 01/21/14 00:00 ADAM | 01/22/14 00:01 ADAM | 01/23/14 00:02 ADAM | 01/23/14 00:02
是否可以让它的行为好像NULL是一个MAX()值,所以它会返回以下内容?
NAME | DATE ----------------------- ADAM | 01/21/14 00:00 ADAM | ADAM | ADAM |
答案 0 :(得分:4)
是的,您可以使用分析功能:
FIRST_VALUE(date_col) OVER (PARTITION BY name ORDER BY date_col DESC NULLS FIRST)
进行测试