当前位置: 首页 > 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 在小流量和大流量场景下的顺序消费问题
  • 方正证券总裁何亚刚到龄退休,54岁副总裁姜志军接棒
  • 新华每日电讯:给“男性妇科病论文”开一剂复方药
  • 人民日报钟声:中方维护自身发展利益的决心不会改变
  • 陈丹燕:赤龙含珠
  • 谢晖不再担任中超长春亚泰队主教练:战绩不佳主动请辞
  • 重庆荣昌机关食堂五一期间受热捧:肉类总消耗2万斤,单日吃卤鹅800只