lag()/lead():获取当前记录指定距离的记录信息
lag():往前推
lead():往后推
--时间更加精确,确保唯一性--
select supplier_id from (
select v1.supplier_id,
lag(v1.LAST_UPDATE_DATE) over(order by v1.LAST_UPDATE_DATE desc,v1.SUPPLIER_ID) maxdate
from BAS_SUPPLIER_V v1
where v1.ENTITY_ID = '1330')
where maxdate is null;
--时间不够精确,不能保证唯一性--
select supplier_id
from BAS_SUPPLIER_V
where LAST_UPDATE_DATE = (select max(LAST_UPDATE_DATE)
from BAS_SUPPLIER_V v
where ENTITY_ID = '1330')
注:lag(v1.LAST_UPDATE_DATE) = lag(v1.LAST_UPDATE_DATE,1)
其中第二个参数默认为1
lag():往前推
lead():往后推
--时间更加精确,确保唯一性--
select supplier_id from (
select v1.supplier_id,
lag(v1.LAST_UPDATE_DATE) over(order by v1.LAST_UPDATE_DATE desc,v1.SUPPLIER_ID) maxdate
from BAS_SUPPLIER_V v1
where v1.ENTITY_ID = '1330')
where maxdate is null;
--时间不够精确,不能保证唯一性--
select supplier_id
from BAS_SUPPLIER_V
where LAST_UPDATE_DATE = (select max(LAST_UPDATE_DATE)
from BAS_SUPPLIER_V v
where ENTITY_ID = '1330')
注:lag(v1.LAST_UPDATE_DATE) = lag(v1.LAST_UPDATE_DATE,1)
其中第二个参数默认为1
本文介绍如何利用SQL的lag()函数提高数据查询效率,通过对比传统查询方式,展示lag()函数在保持时间精度的同时,确保记录唯一性的优势。
6458

被折叠的 条评论
为什么被折叠?



