Hive SQL实现近N周的数据统计查询
- 作者: 五速梦信息网
- 时间: 2026年04月20日 04:37
一个需求,需要基于HIVE统计近N周范围的数据,例如,统计近7周范围的数据指标。 需要用HIVE SQL去实现该功能,而HIVE SQL并没有PostgreSQL那样例如通过函数to_char((to_date(‘202550’, ‘YYYWW’) - INTERVAL ‘5 weeks’), ‘yyyyww’))就可以实现202550和往前5周的202545周的查询(这里的50和45分别表示2025年的50周和45周)。 我当时通过百度和DeepSeek都没有找到合适的答案,还是思考了好几天才想明白怎么解决。 既然HIVE SQL没有函数可以直接实现取指定周与近N周的条件范围查询,是否可以有其他方式呢? 答案是肯定的。 我当时是通过额外建一个时间表,该表有天以及天对应的所在周,可以直接通过代码生成这样一张表date_week_table,直接 从2020年一直自动映射到2030年,该表的数据如下:
| id | Day | Week |
|---|---|---|
| 1 | 2020-01-01 | 202001 |
| 2 | 2020-01-02 | 202001 |
| 3 | 2020-01-03 | 202001 |
| 4 | 2020-01-04 | 202001 |
| 5 | 2020-01-05 | 202001 |
| 6 | 2020-01-06 | 202002 |
| 7 | 2020-01-07 | 202002 |
| 8 | 2020-01-08 | 202002 |
| ……. | …… | …… |
当有这一张周表,而需要查询近N周范围数据的主表由有week字段,例如主表commerce_data是这样的——
| id | order_id | customer_id | product_id | week | total_amount |
|---|---|---|---|---|---|
| 1 | ORD202315001 | 1001 | 5001 | 202501 | 5 |
| 2 | ORD202315002 | 1002 | 5002 | 202452 | 10 |
| 3 | ORD202315003 | 1003 | 5003 | 202451 | 22 |
| 4 | ORD202315004 | 1004 | 5004 | 202450 | 1 |
| 5 | …… | …… | …… | …… | …… |
这时,如果需要统计指定周和前N周的数据,就可以基于这两张表去实现。 例如,查出2025年第1周往前近4周的数据。 可以基于date_week_table周表计算2025年第1周往前近4周都有哪些周,HIVE SQL如下:
select distinct week from date_week_table where week <= '202501' order by week desc limit 3
然后再基于commerce_data主表计算在2025年第1周往前近4周的数据——
select
sum(total_amount)
from commerce_data
where week in(select distinct week from date_week_table where week <= '202501' order by week desc limit 3)
group by order_id
这样,就可以实现查询出指定周及指定周近N周的HIVE SQL查询了。 当然,也有童鞋可能会说,既然只是查询近N周范围,是否可以直接使用指定周,再减去N来差呢? 这里会有一个问题,2025年第一周,即202501,往前两周,分别是202452和202451,如果用指定周202501直接减2,得到的并不是202451。 以上,只是我个人的一个思路,如果还有其他基于HIVE SQL来计算指定周及近N周的计算,可以留言区一块分享讨论。
相关文章
-
HideRarInImage: 小巧实用的文件隐藏工具
HideRarInImage: 小巧实用的文件隐藏工具
- 互联网
- 2026年04月20日
-
gucci是什么意思(为什么gucci口红不火)
gucci是什么意思(为什么gucci口红不火)
- 互联网
- 2026年04月20日
-
GStreamer开发笔记(四):ubuntu搭建GStreamer基础开发环境以及基础Demo
GStreamer开发笔记(四):ubuntu搭建GStreamer基础开发环境以及基础Demo
- 互联网
- 2026年04月20日
-
HTML DOM的各种宽高、偏移位置的属性总结
HTML DOM的各种宽高、偏移位置的属性总结
- 互联网
- 2026年04月20日
-
HTML5中手势原理分析与数学知识的实践
HTML5中手势原理分析与数学知识的实践
- 互联网
- 2026年04月20日
-
HTML-友人a的笔记丶
HTML-友人a的笔记丶
- 互联网
- 2026年04月20日








