mysql-sql-练习题-2

ops/2025/1/12 13:39:14/

日期+topN

  • 日期
  • 最值 topN 任意区间
    • topN 每年温度top2
      • 建表
      • 排名函数
      • 万能公式(条关)
    • 任意区间 各科第1,3,5名
      • 排名函数
      • 万能公式

日期

本周过生日

sql">-- 本周表示 加减日期 格式化 拼接
select *
from student
where date_format(s_age,concat(year(curdate()),date_format(s_age,'-%m-%d'))) -- 生日格式成当前年份between adddate(curdate(),-(date_format(curdate(),'%w') - 1)) -- 本周周一andadddate(curdate(),7 - date_format(curdate(),'%w')) -- 本周周日
;

最值 topN 任意区间

topN 每年温度top2

每一年出现过的最高气温top2及日期
在这里插入图片描述
字符串2010012325表示:2010年01月23日气温25度

建表

sql">create table record(line varchar(10) not null comment '字符串'
) comment'日期温度记录表';insert into record 
values
('2014010114'),
('2014010216'),
('2014010317'),
('2014010410'),
('2014010506'),
('2012010609'),
('2012010732'),
('2012010812'),
('2012010919'),
('2012011023'),
('2001010116'),
('2001010212'),
('2001010310'),
('2001010411'),
('2001010529'),
('2013010619'),
('2013010722'),
('2013010812'),
('2013010929'),
('2013011023'),
('2008010105'),
('2008010216'),
('2008010337'),
('2008010414'),
('2008010516'),
('2007010619'),
('2007010712'),
('2007010812'),
('2007010999'),
('2007011023'),
('2010010114'),
('2010010216'),
('2010010317'),
('2010010410'),
('2010010506'),
('2015010649'),
('2015010722'),
('2015010812'),
('2015010999'),
('2015011023');

排名函数

sql">with tmp as(-- 截取出日期温度selectsubstring(line,1,4) year1,substring(line,5,4) md,cast(substring(line,-2,2) as signed) temperature -- 带符号的温度from record
),tmp1 as(-- 每年温度排名select *,dense_rank() over(partition by year1 order by temperature desc) drfrom tmp) -- 每年最高气温top2
select * from tmp1 where dr <= 2;

在这里插入图片描述
17行

万能公式(条关)

sql">-- 同一年:任取一行温度和所有行逐行比较
-- 没有比我大的:最大值
-- 比我大的个数1个:第二大值with tmp as(-- 截取出日期温度selectsubstring(line,1,4) year1,substring(line,5,4) md,cast(substring(line,-2,2) as signed) temperature -- 带符号的温度from record
)
select * -- 输出格式
from tmp
where (-- 过滤出需求select count(distinct(temperature)) -- 并列也满足需求,去重即可输出from tmp tmp1 -- 关联where tmp.year1 = tmp1.year1 and tmp.temperature < tmp1.temperature -- 逐行比较
) <= 1
order by year1,temperature desc;

任意区间 各科第1,3,5名

排名函数

sql">with tmp as(-- 各科分数排名select *,dense_rank() over(partition by c_id order by score desc) drfrom score
)
select *
from tmp -- 单字段 in 单结果集
where dr in (1,3,5);

在这里插入图片描述
11行

万能公式

sql">select *
from score sc
where (-- 过滤出各科第1,3,5名select count(distinct(score))from score sc1where sc.c_id = sc1.c_id and sc.score < sc1.score
) in (0,2,4)
order by c_id,score desc;

http://www.ppmy.cn/ops/20604.html

相关文章

什么ISP是住宅IP,和普通IP有什么区别?

ISP&#xff08;Internet Service Provider&#xff09;即互联网服务提供商&#xff0c;是向广大用户综合提供互联网接入业务、信息业务和增值业务的电信运营商。住宅IP&#xff0c;也称为家庭IP&#xff0c;是指由ISP分配给家庭或个人用户的IP地址。这些IP地址是真实的&#x…

【力扣】18. 四数之和

18. 四数之和 题目描述 给你一个由 n 个整数组成的数组 nums &#xff0c;和一个目标值 target 。请你找出并返回满足下述全部条件且不重复的四元组 [nums[a], nums[b], nums[c], nums[d] &#xff08;若两个四元组元素一一对应&#xff0c;则认为两个四元组重复&#xff09;…

CSS3(响应式布局)

#过渡# 属性连写&#xff1a; transition: width 2s linear 1s; //前一个时间用于表示过渡效果持续时间&#xff0c;后一个时间用于表示过渡效果的延迟。 #转换# #2D转换# 和 #3D转换# 注意&#xff1a;其中angle对应单位为&#xff1a;deg #圆角# #边框# …

OpenHarmony语言基础类库【@ohos.util.PlainArray (非线性容器PlainArray)】

PlainArray可用于存储具有关联关系的key-value键值对集合&#xff0c;存储元素中key值唯一&#xff0c;key值类型为number类型&#xff0c;每个key对应一个value。 PlainArray依据泛型定义&#xff0c;采用轻量级结构&#xff0c;集合中key值的查找依赖于二分查找算法&#xf…

Taro引入echarts【兼容多端小程序(飞书/微信/支付宝小程序)】

近期接到公司新需求&#xff0c;开发飞书小程序&#xff0c;并且原型中含有大量的图表&#xff0c;本想使用飞书内置图表组件 —— chart-space&#xff0c;但官方表示已经停止维护了&#xff0c;无奈之下&#xff0c;只能另寻他路&#xff0c;于是乎&#xff0c;图表之王&…

OpenHarmony实战开发-如何实现文本输入 (TextInput/TextArea)

TextInput、TextArea是输入框组件&#xff0c;通常用于响应用户的输入操作&#xff0c;比如评论区的输入、聊天框的输入、表格的输入等&#xff0c;也可以结合其它组件构建功能页面&#xff0c;例如登录注册页面。 创建输入框 TextInput为单行输入框、TextArea为多行输入框。…

【原创】向量加权平均算法优化的长短期记忆神经网络自注意力神经网络(INFO-LSTM-SelfAttention)的回归预测

INFO-LSTM-SelfAttention是一种用于回归预测的神经网络模型&#xff0c;结合了长短期记忆&#xff08;LSTM&#xff09;神经网络、自注意力机制和向量加权平均算法。下面详细介绍这个模型在回归预测任务中的工作流程&#xff1a; 1. 数据预处理 输入数据&#xff1a;时序数据序…

记录用php制作上传本地图片并获取图片地址/本地图床的方法

要实现一个允许用户上传本地图片并获取图片地址的功能,你需要使用HTML来创建文件上传表单,使用PHP来处理上传的文件,以及可能需要JavaScript来增强用户体验(比如预览图片)。以下是一个简单的示例,展示如何使用这些技术实现图片上传功能。 HTML部分 创建一个表单,让用户…