zoukankan      html  css  js  c++  java
  • hive常见问题

    1.hive几种去重方式

    1. Distinct用法:对select 后面所有字段去重,并不能只对一列去重
      (1) 当distinct应用到多个字段的时候,distinct必须放在开头,其应用的范围是其后面的所有字段,而不只是紧挨着它的一个字段,而且distinct只能放到所有字段的前面
      (2) distinct对NULL是不进行过滤的,即返回的结果中是包含NULL值的
      (3) 聚合函数中的DISTINCT,如 COUNT( ) 会过滤掉为NULL 的项
    2. group by用法:对group by 后面所有字段去重,并不能只对一列去重。
    select 去重字段 from 表名 group by 去重字段
    
    1. ROW_Number() over()窗口函数
      注意:ROW_Number() over (partition by id order by time DESC) 给每个id加一列按时间倒叙的rank值,取rank=1
    select m.id,m.gender,m.age,m.rank
    
    from (select id,gender,age,ROW_Number() over(partition by id order by id) rank
    
          from temp.control_201804to201806
    
          where id!='NA' and gender!='' or age!=''
    
               ) m
    
    where m.rank=1
    
    1. 使用group_concat函数
    select group_concat(distinct 去重字段) from 表名 group by 去重字段
    
  • 相关阅读:
    CSS部分
    css基础
    css初探
    html表单
    mysql视图 触发器 事物 函数 存储过程
    pymysql
    mysql数据备份与操作
    html基础
    mysql 索引
    tuple,list,dict,set用法
  • 原文地址:https://www.cnblogs.com/chenxiaoge/p/13335450.html
Copyright © 2011-2022 走看看