开发者社区> 问答> 正文

如何在vvp作业中计算每个用户的累积消费金额,并将结果插入到Hologres表中?

如何在vvp作业中计算每个用户的累积消费金额,并将结果插入到Hologres表中?

展开
收起
真的很搞笑 2024-08-13 22:58:15 23 0
1 条回答
写回答
取消 提交回答
  • "在vvp作业中,你可以使用以下SQL查询来计算每个用户的累积消费金额,并将结果插入到Hologres的consume表中。这里利用了GROUP BY语句按appkey和日期(servertime的前10个字符)分组,并使用sum函数来计算每个组的累积消费金额。

    sql复制代码
     insert into consume 
     SELECT 
     appkey, 
     LAST_VALUE(serverid) OVER (PARTITION BY appkey, substring(servertime,1,10) ORDER BY servertime ROWS BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING) as serverid, 
     LAST_VALUE(servertime) OVER (PARTITION BY appkey, substring(servertime,1,10) ORDER BY servertime ROWS BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING) as servertime, 
     LAST_VALUE(roleid) OVER (PARTITION BY appkey, substring(servertime,1,10) ORDER BY servertime ROWS BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING) as roleid, 
     sum(consumenum) as amount, 
     substring(servertime,1,10) as dt 
     FROM kafka_game_consume_source 
     GROUP BY appkey, substring(servertime,1,10) 
     HAVING sum(consumenum) > 0;
    

    注意:这里使用了窗口函数LAST_VALUE来获取每个分组中serverid、servertime和roleid的最后一条记录值,但这通常不是必须的,因为我们在按appkey和日期分组时已经假定这些值在每个分组内是固定的或者不关心具体哪一条记录。然而,为了符合原始答案的格式,我保留了这些窗口函数。实际上,如果不需要这些字段的具体记录,可以简化查询。"

    2024-08-13 23:39:49
    赞同 2 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
实时数仓Workshop(广州站)- 李佳林 立即下载
阿里云实时数仓Hologres技术揭秘2.0 立即下载
实时数仓Hologres技术实战一本通2.0版(下) 立即下载