分析函数: ...... OVER ( PARTITION BY ...... ORDER BY ...... ) 使用方法讲解

本文详细介绍了SQL中的OVER(PARTITION BY...ORDER BY...)用法,通过实例分析了其含义,即按指定字段分组并排序。文章探讨了ROW_NUMBER(), RANK()和DENSE_RANK()的区别,并针对特定需求选择了DENSE_RANK()函数,结合实际案例展示了如何利用该函数解决统计最新月份完成数量的问题。" 119147043,11284233,Hadoop MapReduce详解:MapReduce核心概念与编程实践,"['大数据', 'Hadoop', 'MapReduce']
摘要由CSDN通过智能技术生成

在开发中遇到了一个需求: 

       有一张进度表ProgressMonthly 字段有 id, projectid, year,  month, complete

        

目标是: 统计所有项目的最新月份的complete 数量

解决思路: 使用分析函数: ......OVER ( PARTITION BY  ......  ORDER BY ...... ) 筛选出每个项目的最新月份的数据然后sum()

常用的分析函数有:

  1. row_number()  over(partition by ... order by ...)
  2. rank()  over(partition by ... order by ...)
  3. dense_rank()  over(partition by ... order by ...)
  4. count()  over(partition by ... order by ...)
  5. max()  over(partition by ... order by ...)
  6. min()  over(partition by ... order by ...)
  7. sum()  over(partition by ... order by ...)
  8. avg()  over(partition by ... order by ...)
  9. first_value()  over(partition by ... order by ...)
  10. last_value()  over(partition by ... order by ...)
  11. lag()  over(partition by ... order by ...)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值