此查询:
select BILL_ID, BILL_DATE FROM BILLS
返回以下结果:
bill_id----------bill_date
1943336232 12/03/15
null null
用这个sql:
select
FIRST_VALUE(BILL_ID) OVER(PARTITION BY ACCOUNT_ID ORDER BY BILL_DT DESC) bill_id,
FIRST_VALUE(BILL_DATE) OVER(PARTITION BY ACCOUNT_ID ORDER BY BILL_DT DESC) bill_date
我明白了:
bill_id----------bill_date
null null
让我得到的查询是什么
bill_id----------bill_date
1943336232 12/03/15
我尝试添加IGNORE NULLS,但我总是得到两行,请帮助谢谢
PS:这两行显然具有相同的ACCOUNT_ID
答案 0 :(得分:2)
您可以在NULLS LAST
子句中指定ORDER BY
选项。
select
FIRST_VALUE(BILL_ID) OVER(PARTITION BY ACCOUNT_ID ORDER BY BILL_DT DESC NULLS LAST) bill_id,
FIRST_VALUE(BILL_DATE) OVER(PARTITION BY ACCOUNT_ID ORDER BY BILL_DT DESC NULLS LAST) bill_date
...