大头壳

大头大头 下雨不愁 人家有伞 我有大头
posts - 1, comments - 6, trackbacks - 0, articles - 22
  C++博客 :: 首页 :: 新随笔 :: 联系 :: 聚合  :: 管理

总结一下awk的group by功能

Posted on 2008-03-28 09:54 王大头 阅读(2972) 评论(2)  编辑 收藏 引用

摘录20条数据:

06 01 06 30      2.700         81.000
06 01 06 45      3.900        175.500
06 01 07 00      2.400          0.000
06 01 07 15      0.160          2.400
06 01 08 00      0.380          0.000
06 01 08 15      0.300          4.500
06 01 08 30      3.900        117.000
06 01 08 45      5.520        248.400
06 01 09 00      6.600          0.000
06 01 09 15      9.600        144.000
06 01 09 30      3.300         99.000
06 01 09 45      2.300        103.500
06 01 10 15      7.880        118.200
06 01 10 30     10.820        324.600
06 01 10 45      7.360        331.200
06 01 11 00     11.940          0.000
06 01 11 15      4.200         63.000
06 01 11 30      3.180         95.400
06 01 11 45      1.800         81.000
06 01 12 00     30.970          0.000
 
单列group by单列聚合
awk '{a[$2]+=$5}END{for(i in a) printf "%s %10.3f\n",i,a[i]}' e.dat
 
单列group by多列聚合
awk '{a[$2]+=$5;b[$2]+=$6}END{for(i in a) printf "%s %10.3f %14.3f\n",i,a[i],b[i]}' e.dat
 
多列group by单列聚合
awk '{a[$2" "$3]+=$5}END{for(i in a) printf "%s %10.3f\n",i,a[i]}' e.dat
 
多列group by多列聚合
awk '{a[$2" "$3]+=$5;b[$2" "$3]+=$6}END{for(i in a) printf "%s %14.3f %14.3f\n",i,a[i],b[i]}' e.dat

Feedback

# re: 总结一下awk的group by功能  回复  更多评论   

2010-07-14 14:48 by 葛胜利
受益了!留声!

# re: 总结一下awk的group by功能[未登录]  回复  更多评论   

2010-08-09 21:58 by Justin
超赞 谢谢

只有注册用户登录后才能发表评论。
网站导航: 博客园   IT新闻   BlogJava   知识库   博问   管理