免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 2366 | 回复: 4
打印 上一主题 下一主题

[文本处理] 两张表的运算问题 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2017-11-17 12:58 |只看该作者 |倒序浏览
本帖最后由 Newbee_Mofi 于 2017-11-17 13:00 编辑

表temp_starcount
comcode1        starcount   
371122                408
371195                 27
371192                129
371102                133
371193                 86
371121                192
371199                406
371190                 63
371196                114

表temp_endcount
comcode1         endcount   
371122                763
371196                172
371192                223
371102                243
371193                130
371121                313
371190                 96
371199                787
371195                 59
现在我想按照前面的comcode1         去计算starcount   /endcount   并将结果返回

自己写的是
select  a.comcode1,endcount,starcount,
(round(starcount/endcount*100,2)||'%') as xbl
from  temp_endcount a,temp_starcount b
group by 1,2,3
into temp tmp_hz with no log

但是发现这样算出的结果存在问题,请路过的前辈帮忙指正一下哪里有问题,谢谢了


论坛徽章:
0
2 [报告]
发表于 2017-11-17 14:49 |只看该作者
解决了  ,真晕
select  a.comcode1,endcount,starcount,
(round(starcount/endcount*100,2)||'%') as xbl
from  temp_endcount a,temp_starcount b
where a.comcode1=b.comcode1
group by 1,2,3
order by 1
into temp tmp_hz with no log
;

论坛徽章:
33
荣誉会员
日期:2011-11-23 16:44:17天秤座
日期:2014-08-26 16:18:20天秤座
日期:2014-08-29 10:12:18丑牛
日期:2014-08-29 16:06:45丑牛
日期:2014-09-03 10:28:58射手座
日期:2014-09-03 16:01:17寅虎
日期:2014-09-11 14:24:21天蝎座
日期:2014-09-17 08:33:55IT运维版块每日发帖之星
日期:2016-04-17 06:23:27操作系统版块每日发帖之星
日期:2016-04-18 06:20:00IT运维版块每日发帖之星
日期:2016-04-24 06:20:0015-16赛季CBA联赛之天津
日期:2016-05-06 12:46:59
3 [报告]
发表于 2017-11-18 01:17 |只看该作者

论坛徽章:
0
4 [报告]
发表于 2018-03-16 20:46 |只看该作者
If you want to use awk, instead of SQL:

# awk '(NR==FNR) && (FNR > 1) {starcount[$1]=$2; next;}  (NR > FNR) && (FNR > 1) { endcount[$1]=$2 } END { for (i in starcount) { print i,starcount[i],endcount[i],starcount[i]/endcount[i]}}' /tmp/1 /tmp/2
371195 27 59 0.457627
371196 114 172 0.662791
371102 133 243 0.547325
371121 192 313 0.613419
371122 408 763 0.534731
371199 406 787 0.515883
371190 63 96 0.65625
371192 129 223 0.578475
371193 86 130 0.661538

论坛徽章:
0
5 [报告]
发表于 2018-03-16 20:51 |只看该作者
# awk '(NR==FNR) && (FNR > 1) {starcount[$1]=$2; next;}  (NR > FNR) && (FNR > 1) {$0=$1" "starcount[$1]" "$2" "starcount[$1]/$2; print $0 }    ' /tmp/1 /tmp/2
371122 408 763 0.534731
371196 114 172 0.662791
371192 129 223 0.578475
371102 133 243 0.547325
371193 86 130 0.661538
371121 192 313 0.613419
371190 63 96 0.65625
371199 406 787 0.515883
371195 27 59 0.457627
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP