举例: row_number() over(partition by clue_id order by state_updated desc)

业务举例:

select distinct a.clue_id,
a.car_price,
a.service_amount,
a.buy_car_service_price,
a.created_at,
substr(a.state_updated,1,10) as state_updated
from
(
select distinct order_id,
clue_id,
car_price, --车辆成交价 deal_price
service_amount, --售车服务费
buy_car_service_price , --收车应收服务费
state_updated , --状态变更时间
created_at,
row_number()over(partition by clue_id order by state_updated DESC) as rank
from guazi_dw_dwd.dwd_ctob_trade_online_status_transfer_ymd -- 已定时间 --快卖线上化日志表 --ods.ods_ctob_trade_order
where dt = CAST(date_add('day', -1, current_date) AS VARCHAR)
and state = '10320000' ---10920000为已售
and substr(state_updated,1,10) >= '2019-06-10'
)a
where a.rank = 1

排序规则:

a   row_number  rank    dense_rank
------------------------
A   1    1    1
D   2   2   2
B   3   2   2
C   4   4   3
G   5   5   4
E   6   6   5
F   7   7   6
 
说明:
row_number: 不管排名是否有相同的,都按照顺序1,2,3…..n 
rank: 排名相同的名次一样,同一排名有几个,后面排名就会跳过几次 
dense_rank: 排名相同的名次一样,且后面名次不跳跃
 

一、sum(), min(), max(), avg() 等聚合函数

二、row_number(), rank(), dense_rank(), ntile() 等新增加序号列

三、lag(), lead(), first_value(), last_value() 等函数

四、grouping set, cube, roll up 等函数

链接:https://www.jianshu.com/p/9fda829b1ef1?from=timeline

常用的分析函数如下所列:

row_number() over(partition by … order by …)
rank() over(partition by … order by …)
dense_rank() over(partition by … order by …)
count() over(partition by … order by …)
max() over(partition by … order by …)
min() over(partition by … order by …)
sum() over(partition by … order by …)
avg() over(partition by … order by …)
first_value() over(partition by … order by …)
last_value() over(partition by … order by …)
lag() over(partition by … order by …)
lead() over(partition by … order by …)

Hive 窗口函数的更多相关文章

  1. Hive 窗口函数sum() over()求当前行和前面n条数据的和

    前几天遇到一个这样的需求:销售总占比加起来超过75%的top分类.具体需求是这样的:商品一级分类标签下面有许多商品标签,例如运动户外一级标签,下面可能存在361°,CBA,Nike,Adidas... ...

  2. hive窗口函数/分析函数详细剖析

    hive窗口函数/分析函数 在sql中有一类函数叫做聚合函数,例如sum().avg().max()等等,这类函数可以将多行数据按照规则聚集为一行,一般来讲聚集后的行数是要少于聚集前的行数的.但是有时 ...

  3. Hive窗口函数保姆级教程

    在SQL中有一类函数叫做聚合函数,例如sum().avg().max()等等,这类函数可以将多行数据按照规则聚集为一行,一般来讲聚集后的行数是要少于聚集前的行数的.但是有时我们想要既显示聚集前的数据, ...

  4. Hive 窗口函数、分析函数

    1 分析函数:用于等级.百分点.n分片等 Ntile 是Hive很强大的一个分析函数. 可以看成是:它把有序的数据集合 平均分配 到 指定的数量(num)个桶中, 将桶号分配给每一行.如果不能平均分配 ...

  5. Hive 窗口函数LEAD LAG FIRST_VALUE LAST_VALUE

    窗口函数(window functions)对多行进行操作,并为查询中的每一行返回一个值. OVER()子句能将窗口函数与其他分析函数(analytical functions)和报告函数(repor ...

  6. Hive窗口函数

    参考地址:https://cwiki.apache.org/confluence/display/Hive/LanguageManual+WindowingAndAnalytics 环境准备: CRE ...

  7. Hive窗口函数之LAG、LEAD、FIRST_VALUE、LAST_VALUE的用法

    一.创建表: create table windows_ss ( polno string, eff_date string, userno string ) ROW FORMAT DELIMITED ...

  8. Hive窗口函数最全案例详解

    语法: 分析函数 over(partition by 列名 order by 列名 rows between 开始位置 and 结束位置) 常用分析函数: 聚合类 avg().sum().max(). ...

  9. Hive窗口函数案例详解

    语法: 分析函数 over(partition by 列名 order by 列名 rows between 开始位置 and 结束位置) 常用分析函数: 聚合类 avg().sum().max(). ...

  10. Hive 窗口函数之 lead() over(partition by ) 和 lag() over(partition by )

    lead函数用于提取当前行前某行的数据 lag函数用于提取当前行后某行的数据 语法如下: lead(expression,offset,default) over(partition by ... o ...

随机推荐

  1. Class-DbConnectionManipulator:Execute,QueryFirstDefault<>

    ylbtech-Class-DbConnectionManipulator:Execute,QueryFirstDefault<> 1.返回顶部 1. public object GetS ...

  2. java继承方法覆盖

    public class TestB { private void f() { System.out.println("TestB"); } public static void ...

  3. Java学习之Thread方法

    一.sleep()方法:在同步中,释放CPU执行权,不释放同步锁,意味着程序停止 二.停止线程方法:原理:run执行完成 1.设置标记 class StopThread implements Runn ...

  4. PAT_A1071#Speech Patterns

    Source: PAT A1071 Speech Patterns (25 分) Description: People often have a preference among synonyms ...

  5. UVA10271_Chopsticks

    Chopsticks 大致就是有一堆筷子,知道了他们的长度,现在选长度为abc的三个筷子a<=b<=c为一对筷子,质量为(a-b)平方,现在选k双这样的筷子,求质量最小 思路: 第一次看到 ...

  6. Codeforces 497B Tennis Game( 枚举+ 二分)

    B. Tennis Game time limit per test 2 seconds memory limit per test 256 megabytes input standard inpu ...

  7. 一些常ArcGIS常用简单算法 C#

    最近开始重构不顺眼的辣鸡代码,顺带将某个模块的一个算法辅助类贴到这里. /// <summary> /// 算法逻辑辅助类 /// </summary> internal st ...

  8. linux+Apache开启伪静态配置

    linux+Apache伪静态配置 一.环境准备:CentOS Linux release 7.4.1708 (Core)1.配置源[root@localhost ~]#yum install -y ...

  9. 五、hibernate表与表之间的关系(一对多关系)

    数据库表与表之间的关系 一对多:一个学校可以有多个学生,一个学生只能有一个学校 多对多:一个学生可以有多个老师,一个老师可以教多个学生 一对一:一个人只能有一个身份证号,一个身份证号只能找到一个人 一 ...

  10. 本地存储(sessionStrorage,localStorage)

    1.本地存储特性 1. 数据存储在用户浏览器中 2. 设置,读取方便,设置页面刷新不丢失数据 3. 容量较大,sessionStorage约5M,localStorage约20M 4. 只能存储字符串 ...