前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >分组聚合 OVER PARTITION BY

分组聚合 OVER PARTITION BY

作者头像
Yifans_Z
发布2023-08-23 18:49:06
2000
发布2023-08-23 18:49:06
举报
文章被收录于专栏:与荔枝一起成长

在 HIVE 中

最近在使用 HIVE,需要统计 当年累计和 这样的指标,请教同事后发现了 OVER(PARTITION BY) 开窗函数。

分析函数用于计算基于组的某种聚合值,它和聚合函数的不同之处是:对于每个组返回多行,而聚合函数对于每个组只返回一行。

开窗函数指定了分析函数工作的数据窗口大小,这个数据窗口大小可能会随着行的变化而变化。

测试语句:

代码语言:javascript
复制
CREATE TABLE default.test_over_partition (
  `fdate` Date,
  `year` Int,
  `month` Int,
  `category1` String,
  `category2` String,
  `income` Double
);

INSERT INTO hdp_fin_dash_ods.test_over_partition (`fdate`,`year`,`month`,`category1`,`category2`,`income`) VALUES
('2020-01-01',2020,1,'3C','电脑','1010'),
('2020-01-01',2020,1,'3C','手机','1011'),
('2020-02-01',2020,2,'3C','电脑','1012'),
('2020-02-01',2020,2,'3C','手机','1013'),
('2020-03-01',2020,3,'3C','电脑','1014'),
('2020-03-01',2020,3,'3C','手机','1015'),
('2021-04-01',2021,4,'3C','电脑','1016'),
('2021-04-01',2021,4,'3C','手机','1017'),
('2021-05-01',2021,5,'3C','电脑','1018'),
('2021-05-01',2021,5,'3C','手机','1019');

-- 查询每年每 category2 日累计 income

SELECT `fdate`,`year`,`month`,`category1`,`category2`,`income`
,SUM(income) OVER (PARTITION BY `year`,`category1`,`category2` ORDER BY fdate) AS ttl_year_income
FROM hdp_fin_dash_ods.test_over_partition;

在 MySQL 中

Before MySQL 8.0 you can’t use window functions like ROW_NUMBER.

References

– EOF –

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2021-09-14,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 在 HIVE 中
  • 在 MySQL 中
  • References
相关产品与服务
云数据库 MySQL
腾讯云数据库 MySQL(TencentDB for MySQL)为用户提供安全可靠,性能卓越、易于维护的企业级云数据库服务。其具备6大企业级特性,包括企业级定制内核、企业级高可用、企业级高可靠、企业级安全、企业级扩展以及企业级智能运维。通过使用腾讯云数据库 MySQL,可实现分钟级别的数据库部署、弹性扩展以及全自动化的运维管理,不仅经济实惠,而且稳定可靠,易于运维。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档