hive的SQL语句练习2

drawn_id (key) user_id drawn_dt drawn_amt
支用ID 用户 支用日期 支用金额
aaa u_001 2025-01-01 10
bbb u_002 2025-01-05 1000
ddd u_001 2025-01-10 10111
CCC u_003 2025-02-21 11111
问题:用HiveQL语法分别统计出如下信息
1)统计每个用户电销外呼后的支用统计业绩:业绩口径(外呼后15天有支用都算,如果一笔支用归给多个外呼只取最早那笔外呼)
用户ID 支用ID 支用日期 支用金额 外呼ID 外呼日期 外呼时长
电销:电话销售
外呼:打电话出去 可能是为了电话销售,也可能是为了回访老顾客
支用:客户借钱使用了,就是支用。
统计结果需要关联上面这个表。
好的,我将为您生成两道Hive SQL语句的练习。这些练习基于常见的Hive数据查询场景,适合初学者到中级水平。每个练习包括问题描述、所需数据表结构(假设表已存在),以及一个提示。练习设计注重实用性,帮助您掌握Hive的核心功能。如果您需要解决方案或进一步解释,请随时告知!
练习1: 基础数据过滤与查询
问题描述
假设有一个Hive表 sales,用于存储销售记录。表结构如下:
order_id(int):订单IDproduct_name(string):产品名称quantity(int):销售数量price(double):产品单价
编写一个Hive SQL查询,找出所有单价大于$100$且销售数量大于$5$的订单记录,并按product_name升序排序。
提示
- 使用
WHERE子句进行条件过滤。 - 使用
ORDER BY进行排序。 - 注意Hive SQL的语法(如字符串用单引号)。
练习2: 聚合计算与分组统计
问题描述
继续使用 sales 表。编写一个Hive SQL查询,计算每个产品的总销售额(总销售额定义为销售数量乘以单价的累积和,即 $\sum (\text{quantity} \times \text{price})$),并只显示总销售额超过$1000$的产品。结果应包括product_name和对应的总销售额(别名为total_sales),并按总销售额降序排序。
提示
- 使用
GROUP BY按产品分组。 - 使用聚合函数(如
SUM)计算总销售额。 - 使用
HAVING子句过滤聚合结果。 - 注意:在Hive中,数值计算需处理数据类型(如确保
quantity和price可相乘)。
这些练习覆盖了Hive SQL的基础操作(过滤、排序)和进阶功能(聚合、分组)。如果您尝试后需要核对答案或遇到问题,欢迎反馈!
