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):订单ID
  • product_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中,数值计算需处理数据类型(如确保quantityprice可相乘)。

这些练习覆盖了Hive SQL的基础操作(过滤、排序)和进阶功能(聚合、分组)。如果您尝试后需要核对答案或遇到问题,欢迎反馈!

相关推荐
l1t21 分钟前
利用DeepSeek辅助翻译clickhouse SQL为DuckDB 格式求解Advent of Code 2025第10题 电子工厂 第二部分
数据库·人工智能·sql·clickhouse·duckdb
DarkAthena25 分钟前
【GaussDB】分析函数性能优化案例-row_number改写
数据库·sql·oracle·性能优化·gaussdb
踢足球092938 分钟前
寒假打卡:2026-01-21
数据库·sql
麦聪聊数据1 小时前
基于SQL+CDC构建MySQL到ClickHouse的实时链路
sql·mysql·clickhouse
IT大白1 小时前
6、数据库优化
数据库·sql
sg_knight2 小时前
SQL 中的 IFNULL 函数是什么?
数据库·sql·mysql·oracle·database·关系型数据库·db
zhixingheyi_tian2 小时前
Hadoop 之 行业生态
hadoop
徐先生 @_@|||2 小时前
大数据技术演进(从传统Hadoop到Spark到云原生的技术演进路径)
大数据·hadoop·spark
菩提小狗2 小时前
Sqli-Labs Less4:双引号字符型 SQL 注入详解|靶场|网络安全
数据库·sql·web安全
枷锁—sha12 小时前
【PortSwigger Academy】SQL 注入绕过登录 (Login Bypass)
数据库·sql·学习·安全·网络安全