+ -
当前位置:首页 → 问答吧 → 咨询一下AWK里面统计,类似数据库中的max和SUM

咨询一下AWK里面统计,类似数据库中的max和SUM

时间:2011-02-21

来源:互联网

现在AWK用的不熟,但是需要写一个读取文件的脚本,文件的格式如下
#keyword#URL#IP_count#total
test1|sina|5|13
test1|sina|7|10
test2|sina|5|13
test2|sina|3|13
test2|baidu|8|13
需要根据第一列和第二列做分组,如果第一列和第二列相等,第三列去最大值,第四列要统计相加,类似的SQL语句是 select keyword,URL,max(IP_count),sum(total) from test group by  keyword,URL,需要的结果如下:
test1|sina|7|23
test2|sina|5|26
test2|baidu|8|13

不知道能不能用简捷的方法统计,谢谢

作者: ponky   发布时间: 2011-02-21

  1. awk -F'|' '{if($3 >a[$1" "$2]) a[$1" "$2]=$3;b[$1" "$2]+=$4;}END{for(i in a) print i,a[i],b[i]}' file
复制代码

作者: lkk2003rty   发布时间: 2011-02-21

awk 'BEGIN{FS="|"}{c=$1"|"$2;b[c]+=$4;if(a[c]<$3){a[c]=$3}}END{for(in a){print i"|"a[i]"|"b[i]}}' file

作者: ziyunfei   发布时间: 2011-02-21

热门下载

更多