awk处理案例二十--实现oracle分析函数之lag
【场景】
有个如下结果的表 xm rq mdd 张三 2013.10.01 山东 张三 2013.10.05 江苏 张三 2013.10.10 云南 李四 2013.10.07 安徽 李四 2013.10.10 上海 --------------------------------------------------------------------------- 想产生一个如下结果 姓名 日期 目的地 来自这里 张三 2013.10.01 山东 NULL 张三 2013.10.05 江苏 山东 张三 2013.10.10 云南 江苏 李四 2013.10.07 安徽 NULL 李四 2013.10.10 上海 安徽
【实现】用SQL实现语句如下:
SELECT xm,rq,mdd,Lag(mdd, 1, ' ') Over (partition by xm Order By rq) from t
但是用awk实现更简洁点
【代码如下】
awk '{print a[$1]?$0,a[$1]:$0,"NULL";a[$1]=$3}' file
【总结】
对于文本处理,数据处理。awk的功能很强大;有点类似是linux中的“函数”

浙公网安备 33010602011771号