| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 大数据 -> 实现开窗count distinct 历史累计截止日期去重统计 -> 正文阅读 |
|
[大数据]实现开窗count distinct 历史累计截止日期去重统计 |
解决问题:hive中count(distinct ) over() 无法使用场景 累计去除统计,实际经常使用到的场景比如会员每日历史累计消费,项目每日累计营收等。 案例: 数据准备: 用户轨迹用户访问日志表 test_visit_tab
需要统计的效果按照uvdate时间统计截止当前访问人数,统计效果
开窗count(distinct )over(order by)尝试
最终出来的结果
方法一: 发现虽然语法可以通过查询,但是结果其实和coount(distinct cookieid)不开窗的效果一致,换个思路使用sum开窗处理 思路: 1、将用户按照日期排序 2、统计每日新增用户(排序为1的值求和) 3、计算每日累计新增用户求和 实现:
最终结果:
方法二: 使用collect_set聚合函数后再size()求长度,实现去重统计的效果,弊端collect_set开窗后无法进行去重操作(后面可以再查看group内容) 实现:
最终结果:
阐述上述两种方法解决count distinct无法统计问题和解决部分实际场景统计方式,开窗具体语法可以查看。 hive 开窗函数OVER(PARTITION)详解(一)_liuya19921123的博客-CSDN博客_hive的over partition什么是窗口函数?窗口函数(Window Function)是 SQL2003 标准中定义的一项新特性,并在 SQL2011、SQL2016 中又加以完善,添加了若干处拓展。窗口函数不同于我们熟悉的普通函数和聚合函数,它为每行数据进行一次计算:输入多行(一个窗口)、返回一个值。在报表等分析型查询中,窗口函数能优雅地表达某些需求,发挥不可替代的作用。窗口函数出现在 SELECT 子句的表达式列表中,它最显著的特点就是OVER关键字。语法定义如下:window_function (expres... |
|
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2025年5日历 | -2025/5/6 14:43:49- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |