首页 > 其他分享 >Hive 刷题——用户注册、登录、下单综合统计

Hive 刷题——用户注册、登录、下单综合统计

时间:2023-01-16 10:24:31浏览次数:33  
标签:用户注册 user 09 Hive order 2021 login id 刷题

需求描述

从用户登录明细表(user_login_detail)和订单信息表(order_info)中查询每个用户的注册日期(首次登录日期)、总登录次数以及其在2021年的登录次数、订单数和订单总额。 期望结果如下:
user_id (用户id)   register_date (注册日期)   total_login_count (累积登录次数)   login_count_2021 (2021年登录次数)   order_count_2021 (2021年下单次数)   order_amount_2021 (2021年订单金额) <decimal(16,2)>
101 2021-09-21 5 5 4 143660.00
102 2021-09-22 4 4 4 177850.00
103 2021-09-23 2 2 4 75890.00
104 2021-09-24 4 4 4 89880.00
105 2021-10-04 1 1 4 120100.00
106 2021-10-04 2 2 4 119150.00
107 2021-09-25 4 4 4 124150.00
108 2021-10-06 2 2 4 155770.00
109 2021-09-26 3 3 2 129480.00
需要用到的表: 用户登录明细表:user_login_detail
user_id(用户id) ip_address(ip地址) login_ts(登录时间) logout_ts(登出时间)
101 180.149.130.161 2021-09-21 08:00:00 2021-09-27 08:30:00
102 120.245.11.2 2021-09-22 09:00:00 2021-09-27 09:30:00
103 27.184.97.3 2021-09-23 10:00:00 2021-09-27 10:30:00
订单信息表:order_info
order_id (订单id) user_id (用户id) create_date (下单日期) total_amount (订单金额)
1 101 2021-09-30 29000.00
10 103 2020-10-02 28000.00

参考SQL

select t.user_id,register_date,total_login_count,login_count_2021,order_count_2021,order_amount_2021
from (select user_id,
             date(min(login_ts))                  register_date,
             sum(1)                               total_login_count,
             sum(if(year(login_ts) = 2021, 1, 0)) login_count_2021
      from user_login_detail
      group by user_id) t
         join
     (select user_id,
             sum(1)            order_count_2021,
             sum(total_amount) order_amount_2021
      from order_info
      where year(create_date) = 2021
      group by user_id) t1 on t.user_id = t1.user_id;

标签:用户注册,user,09,Hive,order,2021,login,id,刷题
From: https://www.cnblogs.com/wdh01/p/17041033.html

相关文章

  • Oracle Rman archivelog
    0x00Rman的归档日志管理   archivelog的相关信息是记录在controlfile中的,当物理删除后不会改变controlfile的设置。并且在查询相关的动态视图(例如v$archived_log)时......
  • 算法刷题 Day 17 | 110.平衡二叉树 257. 二叉树的所有路径 404.左叶子之和
    今日内容:平衡二叉树二叉树的所有路径左叶子之和详细布置迭代法,大家可以直接过,二刷有精力的时候再去掌握迭代法。110.平衡二叉树(优先掌握递归)再一次......
  • 算法刷题 Day 16 | 104.二叉树的最大深度 111.二叉树的最小深度 222.完全二叉树的节点
    今日内容:二叉树的最大深度559.n叉树的最大深度二叉树的最小深度完全二叉树的节点个数迭代法,大家可以直接过,二刷有精力的时候再去掌握迭代法。详细布置104......
  • LeetCode刷题:runtime error: reference binding to null pointer of type 'int' (stl_
    题目:https://leetcode.cn/problems/merge-intervals/错误代码://思路初探:做了很多道类似区间操作的题目了。本题就是尽可能少的创建新区间//1.首先对区间排序(左边界升......
  • [SQL] Hive日期时间函数整理
    1.日期时间常量current_date:获取当前日期current_timestamp:获取当前时间2.日期时间函数2.1获取日期时间指定部分获取日期指定部分extract(fieldFROMsource)-......
  • 关于假期刷题的一些计划
    以下一些图是当时用qq截屏翻到的一篇博客的一些图,虽然不知道对不对,就先按照他是对的情况下刷题吧,实在记不住这是谁的了,就不标注来源了争取这个假期能到D题以上的水准吧,下......
  • LeetCode刷题(160)~删除字符串中的所有相邻重复项
    题目描述给出由小写字母组成的字符串S,重复项删除操作会选择两个相邻且相同的字母,并删除它们。在S上反复执行重复项删除操作,直到无法继续删除。在完成所有重复项删除操作......
  • pat甲级刷题第一天
    1001A+BFormat (解题思路):利用数组存取每一位,当数组的下标是3的倍数的时候额外输出一个','#include<iostream>#include<vector>usingnamespacestd;intmain(){......
  • python读取 hive数据
    importpandasaspdimportrefromimpala.dbapiimportconnectfromimpala.utilimportas_pandasfromimpala.dbapiimportconnectimportjson,sysfromdatetimeimport......
  • 1.12刷题记录
    1.[XMAN2018排位赛]通行证打开附件看出里面这是base64加密于是去解密然后又得到了新的密码--kanbbrgghjl{zb____}vtlaln这是栅栏密码然后一系列操作kzna{blnl_ab......