查找表中某几个字段重复的记录

查找表中某几个字段重复的记录

 

select rowid,ledger_id,bid from fb_ledgers  t1 where t1.rowid!=(select max(rowid) from fb_ledgers  t2 where t1.bid=t2.bid  and t1.ledger_type=t2.ledger_type  and  t1.act_date=t2.act_date  and  t1.dir_flag=t2.dir_flag);

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
好的,我可以给您提供一些思路和代码示例来实现这个需求。 1. 数据监测 对于数据监测,您可以编写一个shell脚本,使用grep等命令查找表中的数据是否存在问题,如下所示: ```shell #!/bin/bash # 检查表中是否有重复的考生号 if [ $(sort -t',' -k1,1 file.csv | uniq -d | wc -l) -ne 0 ]; then echo "表中存在重复的考生号" fi # 检查表中是否有成绩为负数的情况 if [ $(awk -F, '$4 < 0 || $5 < 0 || $6 < 0 || $7 < 0 {print}' file.csv | wc -l) -ne 0 ]; then echo "表中存在成绩为负数的情况" fi # 检查表中是否有身份证号格式错误的情况 if [ $(awk -F, '$3 !~ /^[0-9]{17}[0-9Xx]$/ {print}' file.csv | wc -l) -ne 0 ]; then echo "表中存在身份证号格式错误的情况" fi ``` 2. 统计分析 对于统计分析,您可以编写一个shell脚本,使用awk等命令对表中的数据进行分析,如下所示: ```shell #!/bin/bash # 统计总分平均分和各科目平均分 awk -F, '{sum=$4+$5+$6+$7; total_sum+=sum; chinese_sum+=$4; math_sum+=$5; english_sum+=$6; count+=1} END {printf("总分平均分:%f\n", total_sum/count); printf("语文平均分:%f\n", chinese_sum/count); printf("数学平均分:%f\n", math_sum/count); printf("外语平均分:%f\n", english_sum/count)}' file.csv # 统计各分数段人数占比 awk -F, '{sum=$4+$5+$6+$7; count+=1; if (sum >= 480) {a+=1} else if (sum >= 420) {b+=1} else if (sum >= 360) {c+=1} else if (sum >= 300) {d+=1} else {e+=1}} END {printf("优秀(480分及以上):%d人,占比:%f%%\n", a, a/count*100); printf("良好(420-479分):%d人,占比:%f%%\n", b, b/count*100); printf("中等(360-419分):%d人,占比:%f%%\n", c, c/count*100); printf("及格(300-359分):%d人,占比:%f%%\n", d, d/count*100); printf("不及格(300分以下):%d人,占比:%f%%\n", e, e/count*100)}' file.csv ``` 3. 个性化展示 对于个性化展示,您可以编写一个shell脚本,使用dialog等命令实现交互式界面展示数据,如下所示: ```shell #!/bin/bash # 显示格数据 dialog --title "考生基本信息" --stdout --textbox file.csv 0 0 # 显示总分排名前10的考生信息 dialog --title "总分排名前10的考生信息" --stdout --no-tags --tailbox <(sort -t',' -k4,4nr file.csv | head -n 10) 20 80 ``` 您可以根据自己的需要,将上述代码组合起来,实现一个完整的脚本。当然,上述代码只是示例,您可以根据自己的实际需求进行修改和扩展。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值