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

大数据面试-笔试SQL

一个表table: c_id u_id score;用SQL计算每个班级top5学生的平均分(腾讯)

select class_id,avg(score) as score_avg
from
(select *,row_number() over(partition by class_id order by score desc) as score_rank
from table
) t1
where t1.score_rank<=5
gropu by t1.class_id

计算连续登陆3天的用户?营业额连续增长的店铺?(腾讯、零食有鸣)

--原始数据
u_1 2024-08-01
u_1 2024-08-02
u_1 2024-08-03
u_1 2024-08-05
u_1 2024-08-06u_2 2024-08-01
u_2 2024-08-03
--lag() over()函数+dadediflag(date,1)  diff_1   lag(date,2).   diff_2
u_1 2024-08-01  null         null    null            null
u_1 2024-08-02  2024-08-01    1      null            null
u_1 2024-08-03  2024-08-02    1      2024-08-01      1
u_1 2024-08-05  2024-08-03    2      2024-08-02      1
u_1 2024-08-06  2024-08-05    1      2024-08-03      2u_2 2024-08-01  null          1      null            null
u_2 2024-08-03  2024-08-01    2      null            nullselect distinct user_id
from table
where lag(date,1) is not nulland diff_1=1and diff_2=1

腾讯SQL手写笔试题目

在这里插入图片描述
在这里插入图片描述

1.
先会有登陆事件、再有对局事件
login_log表作为left join的主表一个玩家登陆之后,可能会对应多次对局
对局时间大于最近一次登陆时间:每一个对局时间,对应多个登陆时间,找到最晚的那一个就可以了select t1.uid,t2.battle_time,max(login_time) as  login_time
from login_log t1
left join battle_log t2 
on t1.uid=t2.uid
and t1.login_time<t2.battle_time
group by t1.uid,t2.battle_time2.
首先进行split切分操作
其次进行行转列操作,将数据打散
最后按照兴趣聚合select hobby_new_1,count(name) as user_cnt
from
(
select t1.name,t2.hobby_new_1
from
(select name,split(hobby,'+') as hobby_new 
from hobby_detail
) t1
lateral view explode(t1.hobby_new) hobby_new_1 as t2
) t
group by hobby_new_1

腾讯SQL手写笔试题目

在这里插入图片描述

问题1
引擎:hive/spark
语句:
select stu_id
from scoce_detail
group by stu_id
having min(score) > 60;
思路:在scoce_detail表中,每一个学生最小的成绩只要大于60分,那么其他科目都满足条件,该学生就是目标学生(前提是学生某些科目没有成绩,不做过滤)问题2
引擎:hive/spark
语句:
select t.stu_id
from
(select stu_id,count(if(subject='数学',1,null)) as math_subject_cnt 
from score_detail
group by stu_id
having(count(if(subject='数学',1,null)))<1
) t ;
思路:统计每个学生下的 数学科目的条数,如果数学科目条数小于1,代表该学生没有数据成绩
http://www.lryc.cn/news/457777.html

相关文章:

  • 希尔排序和直接插入排序
  • IDEA 配置 Git 详解
  • Docker 部署 Redis 监控系统实战:Redis Exporter 与 Prometheus 完整配置指南
  • 高级算法设计与分析-MaxFlow网络流基础知识
  • Java项目实战II基于Java+Spring Boot+MySQL的桂林旅游景点导游平台(源码+数据库+文档)
  • C语言-输入输出
  • 如何在GitHub上传自己的项目?(一文看懂,每一步的操作和解决常见错误的方法)
  • 数据结构_day1
  • c# using 声明进行资源管理
  • Kafka之基本概念
  • 倪师学习笔记-天纪-斗数简介
  • Python酷库之旅-第三方库Pandas(143)
  • 细说QT各种线程锁的特点和用法
  • Caffeine+Redis两级缓存架构
  • kafka和zookeeper单机部署
  • 别了,公有云!下云迁移真的是大趋势么?
  • 网关在不同行业自动化生产线的应用
  • C++ socket编程(1)
  • C# 文件夹类的实现与文件属性处理
  • 基于SSM框架和Layui的学院课程安排系统的设计与实现(源码+定制+定制)
  • 【论文笔记】DKTNet: Dual-Key Transformer Network for small object detection
  • 设计模式之适配器模式(Adapter)
  • [git] github管理项目之环境依赖管理
  • 【STM32 Blue Pill编程实例】-SD卡文件读写(SPI接口)
  • 为什么需要软件测试?
  • 成为超人:普通人如何白手起家,富一代和富二代的根本区别是什么?
  • Java 集合 Collection常考面试题
  • C++继承与菱形继承(一文了解全部继承相关基础知识和面试点!)
  • 谷歌DeepMind 德米斯·哈萨比斯 因蛋白质预测AI荣获诺贝尔化学奖
  • 内网笔记大全