根据列删除配置单元中的DUPLICATE行

 叶肖帆Seantq_693 发布于 2023-02-12 16:07

我有一个包含10列的HIVE表,其中前9列将具有重复行,而第10列不会像CREATE_DATE那样具有创建日期.

例:

如果我今天在表中插入10行,它将把CREATE_DATE作为今天的日期..如果我明天再次插入相同的10行,它将有一个不同的CREATE_DATE,这会产生我使用DISTINCT的问题.

有没有办法根据9列删除重复记录而忽略第10列.

示例:让我们考虑表中有5列.这是由DAYID和MARKETID划分的外部HIVE表.每当除CREATEDATE之外的列(由第1行和第2行引用)相同或者如果行是重复的(如第3行和第4行所引用),它应该保留这些行中的任何一行.它保留哪个并不重要.

COL1 COL2 CREATEDATE   DAYID    MARKETID  
A     1    20131206   20131207 1234  
A     1    20131207   20131207 1234  
A     1    20131206   20131207 1234  
B     1    20131206   20131207 1234  
B     1    20131206   20131207 1234  
C     2    20131206   20131207 1234  
C     2    20131207   20131207 5678 

输出---

COL1 COL2 CREATEDATE   DAYID    MARKETID
A     1    20131206   20131207   1234
B     1    20131206   20131207   1234
C     2    20131206   20131207   1234
C     2    20131207   20131207   5678

谢谢Nates

1 个回答
  • 您可以执行以下操作:

    select col1,col2,dayid,marketid,max(createdate) as createdate
    from tablename
    group by col1,col2,dayid,marketid
    

    这样您就可以按除数据之外的所有列对数据进行分组,因此如果这些列中的行具有相同的值,则它们将位于同一个组中,然后,只需使用聚合函数"选择"所需的创建项像最大/最小等

    2023-02-12 16:08 回答
撰写答案
今天,你开发时遇到什么问题呢?
立即提问
热门标签
PHP1.CN | 中国最专业的PHP中文社区 | PNG素材下载 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有