当前位置: 首页 > news >正文

怎样用 esProc 将数据集中重复内容置空

某库表的前两个字段会同时出现重复值,比如下面的前 3 条记录。

Column_AColumn_BColumn_C
1ABamount1
1ABamount2
1ABamount3
2OAamount4
3OEamount5
3OEamount6
4DBamount7

现在要将所有的重复值改成 null,换句话说,按前 2 个字段分组后(等价于按其中 1 个字段分组),只保留组内第一条不变,其他记录的前两个字段改成 null。

计算结果像下面这样:

Column_AColumn_BColumn_C
1ABamount1
amount2
amount3
2OAamount4
3OEamount5
amount6
4DBamount7

SQL分组后必须立刻汇总,不能保持分组子集继续计算,也没有天然的组内行号,代码比较难写。

esProc提供了丰富的计算函数,可以保持分组子集继续计算,有天然的行号,包括组内行号:esProc Web Try

 A
1$select * from table_name.txt
2=A1.group(Column_A)
3=A2.run(~.(if(#!=1,Column_A=Column_B=null)))
4=A3.conj()

A1:加载数据。

A2:用 group 函数按第 1 个字段分组,但不汇总。

Picture1png


每组是一个集合,可以通过点击展开,如图是前两组。

Picture2png


A2:用 run 函数修改各组数据,当成员在组内的序号大于 1 时,将前两个字段改为 null。~ 表示当前组,# 表示组内序号。

Picture3png


A3:合并各组。

Picture4png

上面分步骤的代码有利于学习和调试,熟练后 A2-A4 可以合为一句:

=A1.group(Column_A).run(~.(if(#!=1,Column_A=Column_B=null))).conj()

esProc是开源免费的,下载试用~

相关文章:

  • .NET WPF 三维模型
  • 蓝桥杯 16.对局匹配
  • GPU高效利用率实战揭秘:蓝耘元生代VS传统云平台的降维打击
  • 解析三大中间件:Nginx、Apache与Tomcat
  • AOSP Android14 Launcher3——远程窗口动画关键类SurfaceControl详解
  • Unreal 如何实现一个Vehicle汽车沿着一条指定Spline路径自动驾驶
  • 应用层核心协议详解:HTTP, HTTPS, RPC 与 Nginx
  • StarRocks:一款开源的高性能分析型数据仓库
  • C#常用LINQ
  • ubuntu学习day4
  • ubuntu--安装双系统
  • 规则引擎 - Easy Rules
  • Spark和Hadoop的区别和联系
  • 【AI提示词】数据分析专家
  • 系统安全及应用
  • 一个关于相对速度的假想的故事-3
  • Linux 入门十一:Linux 网络编程
  • PyCharm 在 Linux 上的完整安装与使用指南
  • arxml文件中的schema是什么?有什么作用?
  • Kafka 在小流量和大流量场景下的顺序消费问题
  • 广西人饮旱情仍持续发展,桂西北、桂中风险较高
  • 从沙漠到都市:贝亲世界地球日特别行动,以桃叶冰爽力开启地球降温之旅
  • 被指违反代理协议遭南航暂停售票资格, 去哪儿网:今起恢复
  • 对话地铁读书人|翻译Esther:先读原著,再看电影
  • 全国登记在册民营企业超过5700万户
  • 深一度|上海半马,展示“体育+”无限可能的路跑狂欢