大数据面试题之SQL题

大数据面试题之SQL题

1.有一个录取学生人数表,记录的是每年录取学生人数和入学学生的学制
以下是表结构:
CREATE TABLE admit (
id int(11) NOT NULL AUTO_INCREMENT,
year int(255) DEFAULT NULL COMMENT ‘入学年度’,
num int(255) DEFAULT NULL COMMENT ‘录取学生人数’,
stu_len varchar(255) DEFAULT NULL COMMENT ‘学生学制’,
PRIMARY KEY (id)
) ENGINE=InnoDB AUTO_INCREMENT=5 DEFAULT CHARSET=utf8mb4 COMMENT=‘录取人数’;
year表示学生入学年度
num表示对应年度录取学生人数
stu_len表示录取学生的学制
说明:例如录取年度2018学制3,表示该批学生在校年份为2018~2019、2019~2020、2020~2021
以下是示例数据:

idyearnumstu_len
1201820003
2201920003
3202010004
4202020003

根据以上示例计算出每年在校人数,写出SQL语句:

SELECT t2.year,t2.res
FROM(SELECT t1.`year`,SUM(t1.num) over(ORDER BY t1.`year`) as res,ROW_NUMBER() over(PARTITION BY t1.`year` ORDER BY t1.`year`) as rankingFROM(SELECT year,num FROM admitUNION ALLSELECT year+stu_len as year,-num FROM admit) as t1ORDER BY t1.`year`) as t2
WHERE t2.ranking = 1;

计算结果截图:
在这里插入图片描述

2.有一个分数表id 是该表的主键。该表的每一行都包含了一场考试的分数。Score 是一个有两位小数点的浮点值。
以下是表结构和数据:
Create table Scores (
id int(11) NOT NULL AUTO_INCREMENT,
score DECIMAL(3,2),
PRIMARY KEY (id)
);

查询并对分数进行排序。排名按以下规则计算:

分数应按从高到低排列。
如果两个分数相等,那么两个分数的排名应该相同。
在排名相同的分数后,排名数应该是一个连续的整数。

分数表:

idscore
13.5
23.65
34.0
43.85
54.00
63.65

根据以上示例数据计算出排名,写出SQL语句不能使用dense_rank和over开窗函数:

select s1.score,(-- distinct 去除重复的成绩select count(distinct s2.score)from scores s2where s2.score >= s1.score ) as 'rank'
from scores s1
order by s1.score desc;

计算结果截图:
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/752077.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

大语言模型相关工具使用链接

大语言模型(Large Language Model,LLM)是自然语言处理(NLP)领域中的一种深度学习模型,主要用于理解和生成人类语言。这类模型通常基于Transformer架构,通过在大规模语料库上进行预训练来捕获语言…

Hive调优总结

参数设置 概述:hive的参数配置, 就是在那里配置hive的参数信息, 根据配置地方不同, 作用范围也不一样. 配置方式: 1. set方式进行设置. 2. 命令行方式进行设置. 3. 配置文件方式进行设置. 优先级问题: set方式 > 命令行方式 > 配置文件…

Day67:WEB攻防-Java安全JNDIRMILDAP五大不安全组件RCE执行不出网

知识点: 1、Java安全-RCE执行-5大类函数调用 2、Java安全-JNDI注入-RMI&LDAP&高版本 3、Java安全-不安全组件-Shiro&FastJson&JackJson&XStream&Log4j Java安全-RCE执行-5大类函数调用 Java中代码执行的类: GroovyRuntimeExecPr…

Dockerfile 语法详解

Dockerfile 是一种文本文件,用于定义如何构建 Docker 镜像。它包含一系列指令,用于创建镜像的各个层,最终生成一个可运行的容器。 语法格式 Dockerfile 的语法遵循以下格式: INSTRUCTION [ARGUMENTS]其中: INSTRUC…

如何使用机器学习构建自己的推荐系统?

一、说明 在广阔的电子商务领域,众多产品和服务都在争夺我们的注意力,推荐系统的作用变得至关重要。这些智能系统彻底改变了我们在线发现和接触产品的方式,使其成为现代电子商务平台成功的基石。 推荐系统,通常称为推荐引擎或简称…

机器学习入门:探索智能算法的世界 (上)

引言 在信息时代,数据与算法构成了新的基石,而机器学习则是连接它们的桥梁。机器学习,一门让计算机通过数据学习并做出决策的科学,正逐渐成为现代技术不可或缺的一部分。从个性化推荐系统、自动驾驶汽车到高级数据分析和预测模型,机器学习的应用几乎遍及每一个领域,它不…

谈谈对数据库索引的认识

索引的概念 索引是一种特殊的文件,包含着对数据表里所有记录的引用指针。 可以对表中的一列或多列创建索引,并指定索引的类型,各类索引有各自的数据结构实现。 索引的作用 默认情况下,进行条件查询操作,就是遍历表&a…

清理ubuntu空间

最近ubuntu空间告急,急需清理一下。 首先是apt的清理,apt中会留存很多的下载和安装文件,此时就需要: 先查看: du -sh /var/cache/apt/archives然后清理: sudo apt-get clean清理不需要的内核:…

企业数据流动安全管理软件(深度解析文章)

企业数据重要性不言而喻,而同时数据的流动和共享也带来了安全风险,如何确保企业数据在流动过程中的安全性,也成为了企业需要面临的重要问题。 企业数据流动安全管理软件的主要功能是监控和管理企业数据的流动过程。 它能够对企业内部的数据…

launchctl及其配置、使用、示例

文章目录 launchctl 是什么Unix / Linux类似的工具有什么哪个更常用配置使用常用子命令示例加载一个 launch agent:卸载一个 launch daemon:列出所有已加载的服务:启动一个服务:停止一个服务:禁用一个服务:启用一个服务: 附com.example.myagent.plist内容有趣的例子参考 launch…

vb.net+zxing.net随机彩色二维码、条形码

需要zxing库支持ZXing.NET Generate QR Code & Barcode in C# Alternatives | IronBarcode 效果图: 思路:先生成1个单位的二维码,然后再通过像素填充颜色,颜色数组要通过洗牌算法 洗牌算法 Dim shuffledCards As New List(…

牛客NC278 删除链表中重复的结点【中等 链表 Java,Go,PHP】

题目 题目链接: https://www.nowcoder.com/practice/fc533c45b73a41b0b44ccba763f866ef 这题有一次面试某团的第一道题 思考 链表的基本操作参考答案Java import java.util.*; /*public class ListNode {int val;ListNode next null;ListNode(int val) {this.v…

【Linux杂货铺】进程的基本概念

目录 🌈前言🌈 📁进程的概念 📂描述进程-PCB 📂 查看进程 📂 查看正在运行的程序 📂杀死进程 📂通过系统调用获取进程标识符 📂通过系统调用创建进程 &#x1f…

MongoDB聚合运算符:$first

文章目录 语法使用定义文档顺序数组操作缺失值的处理 举例数据缺失的情况在$setWindowFields阶段中使用 $first聚合运算符返回分组中第一个文档指定表达式的结果,只有分组文档是有序的情况下才有意义。 $first可用于下列阶段: $bucket$bucketAuto$grou…

初阶结构体

在这篇文章中我们只讲一些结构体的一些基础的知识,后续会继续补充关于结构体的高阶知识。 1.结构体声明 1.1结构体的基本知识 结构是一些值的集合,这些值称为成员变量。结构的每个成员可以是不同类型的变量。 结构可以用来描述复杂对象,在…

day10-SpringBootWeb案例-1

一、准备工作 1 需求&环境搭建 步骤: 准备数据库表(dept、emp)创建 springboot 工程,引入对应的起步依赖(web、mybatis、mysql 驱动、lombok)配置文件 application.properties 中引入 mybatis 的配置信息,准备对应…

CI/CD实战-gitlab代码仓库 2

gitlab安装部署 实验虚拟机最小需求:4g内存,4核cpu 下载源:Index of /gitlab-ce/yum/el7/ | 清华大学开源软件镜像站 | Tsinghua Open Source Mirror 安装依赖性: 安装软件: 修改依赖性配置文件 重新自动化配置 登录…

如何在 iPhone 上使用蓝牙鼠标

iPhone 不支持使用传统的鼠标指针。 然而,有一个名为“AssistiveTouch”的功能可以在屏幕上模拟类似光标的指针。 启用它的方法如下: 打开 iPhone 上的“设置”应用程序。转到“辅助功能”。向下滚动并选择“触摸”。点击“辅助触控”。切换开关以打开 …

Rust 01.变量、类型、函数

转义输出: fn main() {let a 12;println!("a {{{}}}", a); } //a {12}type let is_true: bool true;println!("is_true {}", is_true);let is_false false;println!("is_false {}, {}", is_false, is_true);//char 在rust里面…

快速排序(数据结构)

1. 前言: 这两种排序经常使用,且在算法题中经常遇见。 这里我们简单分析讨论一下。 1. 快速排序 平均时间复杂度:O(nlogn) 最坏时间复杂度: O(n^2) 1.1. 左右向中遍历: 取最右侧4…