当前位置: 首页 > article >正文

HiveSQL面试题

一、各类型专利top 10申请人,以及对应的专利申请数

1)表名:t_patent_detail (专利明细表)

2)表字段:专利号(patent_id)、专利名称(patent_name)、专利类型(patent_type)、申请时间

(aplly_date)、授权时间(authorize_date)、申请人(apply_users)

3)说明:同一个专利,可以有1到多个申请人,多人之间按分号隔开。本表记录数约1万条。例

如:

4)请写出hive查询语句,各类型专利top 10申请人,以及对应的专利申请数

解题思路

  • 爆炸函数炸开apply_users(注意不要忘记分隔符

  • 按照专利种类,申请人进行分组,得到每个种类中每个人申请了多少次

  • 用排名函数进行倒序排序(这里用的dense_rank)

  • 取top10

代码

create table t_patent_detail(
    patent_id string,
    patent_name string,
    patent_type string,
    apply_date date,
    authorize_date date,
    apply_users string
);

with t1 as (
    select patent_type,apply_user from t_patent_detail lateral view explode(split(apply_users,';')) t1 as apply_user
), t2 as (
    select patent_type,apply_user,count(*) cou from t1 group by patent_type,apply_user
),t3 as (
    select *,dense_rank() over (partition by patent_type,apply_user order by cou desc) den from t2
)select * from t3 where den<=10;

二十、查询出用户连续三天登录的所有数据记

用户登录记录表
id           dt
1    2024-04-25 
1    2024-04-26 
1    2024-04-27
1    2024-04-28
1    2024-04-30
1    2024-05-01
1    2024-05-02
1    2024-05-04
1    2024-05-05
2    2024-04-25
2    2024-04-28
2    2024-05-02
2    2024-05-03
2    2024-05-04

期望结果:

解题思路

  • 利用log写出上一条和上上一条的信息,如果为空则返回该条的dt

  • 利用datediff对日期进行相减,如果该条dt与上条上上条之差都为-1,即该用户连续登录了三天

代码

建表
create table user_log(
    id int,
    dt string
)row format delimited
fields terminated by ',';
drop table user_log;
导入数据
load data local inpath '/home/20.txt' into table user_log;
求解
with t1 as (
    select *,nvl(lag(dt,1) over(),dt) dt2,nvl(lag(dt,2) over (),dt) dt3 from user_log
),t2 as (
    select *,datediff(dt,dt2) df1,datediff(dt2,dt3) df2 from t1
)select id,dt from t2 where df1 = -1 and df2 = -1;


http://www.kler.cn/a/385818.html

相关文章:

  • 处理namespace问题:Namespace not specified for AGP 8.0.0
  • 使用Java绘制图片边框,解决微信小程序map组件中marker与label层级关系问题,label增加外边框后显示不能置与marker上面
  • FreeSWITCH chat 得到的是 Error! Message Not Sent
  • 周末总结(2024/11/16)
  • hive表名重命名、rename重命名
  • Python练习27
  • 惊爆:抖音小程序广告掘金计划,游戏+广告双赢新趋势!
  • django-tidb版本说明
  • 软考系统架构设计师论文:论边缘计算及其应用
  • 华为市场ASO详解
  • 什么是聚类分析,它在数据分析中的应用是什么
  • [前端]NodeJS常见面试题目
  • 类与对象—中
  • Spark 中的 RDD 分区的设定规则与高阶函数、Lambda 表达式详解
  • 使用Python和Vosk库实现语音识别
  • MATLAB和R及Python亚群差异表达分析
  • 剑指offer第二版(PDF+源码)
  • ABAP:SET CURSOR FIELD设置鼠标焦点
  • 二维码(Misc)
  • 双十一购买服务器不止局限于新用户,老用户同样有福利!
  • 丹摩征文活动|新手入门指南
  • vue实现图片无限滚动播放
  • 线上模型准确率估计——在没有标签的测试数据上估计模型准确率
  • 【CAN通信】
  • TVM计算图分割--LayerGroup
  • 大数据 ETL + Flume 数据清洗 — 详细教程及实例(附常见问题及解决方案)