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

SQL刷题_牛客_SQL热题

SQL201 查找入职员工时间排名倒数第三的员工所有信息【简单】SQL201 查找入职员工时间排名倒数第三的员工所有信息窗口函数其他方法# 怎么算倒数第三 如果倒数第123都是同一个日期那算谁# 从运行结果倒推看日期需要去重select*fromemployeeswherehire_date(selectdistincthire_datefromemployeesorderbyhire_datedesclimit1offset2# limit 2, 1)orderbyemp_no# 还可以用 group by 代替 distinctselecthire_datefromemployeesgroupbyhire_dateorderbyhire_dateSQL216 获取当前薪水第二多的员工的emp_no以及其对应的薪水salary【简单】SQL216 获取当前薪水第二多的员工的emp_no以及其对应的薪水salary# select emp_no, salary# from (# select emp_no, salary,# dense_rank() over(order by salary desc) rk# from salaries# ) a# where rk 2selectemp_no,salaryfromsalarieswheresalary(selectdistinctsalaryfromsalariesorderbysalarydesclimit1,1)selectemp_no,max(salary)fromsalarieswheresalary(selectmax(salary)fromsalarieswhereto_date9999-01-01)SQL217 【禁用order by】获取当前薪水第二多的员工的emp_no以及其对应的薪水salarySQL217 获取当前薪水第二多的员工的emp_no以及其对应的薪水salarywitht1as(selecta.emp_no,salary,last_name,first_namefromemployees aleftjoinsalaries bona.emp_nob.emp_nowheresalary!(selectmax(salary)fromsalaries))selectemp_no,salary,last_name,first_namefromt1wheresalary(selectmax(salary)fromt1)SQL288 最大值SQL288 最大值参考上面几题的解法除了窗口函数还可以 降序排列后limit 1我的selectname,cum_sumasgrade_numfrom(selectname,cum_sum,row_number()over(orderbycum_sumdesc)asrkfrom(selectname,sum(if(typeadd,grade_num,-grade_num))over(partitionbyname)ascum_sumfromuseraleftjoingrade_info bona.idb.user_id)a)bwhererk1评论区selectname,sum(grade_num)over(partitionbyuser_id)asgrade_sumfromgrade_info,userwheregrade_info.user_iduser.idorderbygrade_sumdesclimit1SQL289 最大值不唯一select distinct 和 窗口函数写在一行经测试发现distinct能对窗口函数的结果去重selectid,name,cum_sumasgrade_numfrom(selectdistinctid,name,cum_sum,dense_rank()over(orderbycum_sumdesc)asrkfrom(selecta.id,name,sum(if(typeadd,grade_num,-grade_num))over(partitionbyname)ascum_sumfromuseraleftjoingrade_info bona.idb.user_id)a)bwhererk1orderbyid满足条件时窗口函数也可以和group by一起用selectid,name,total_sumasgrade_numfrom(selecta.id,name,sum(if(typeadd,grade_num,-grade_num))total_sum,dense_rank()over(orderbysum(if(typeadd,grade_num,-grade_num))desc)rkfromuseraleftjoingrade_info bona.idb.user_idgroupbya.id,name)awhererk1orderbyidSQL220 查找在职员工自入职以来的薪水涨幅情况SQL220 查找在职员工自入职以来的薪水涨幅情况我的:# 忽略降薪# select emp_no, max(salary) - min(salary) growth# from salaries# group by emp_no# having max(to_date) 9999-01-01# order by growth# 虽然通过了但感觉也忽略了现在比入职时工资低的情况selecta.emp_no,max(salary)-min(salary)growthfrom(selectemp_no,max(to_date)max_dt,min(from_date)min_dtfromsalariesgroupbyemp_nohavingmax(to_date)9999-01-01)aleftjoinsalaries bona.emp_nob.emp_noand(to_datemax_dtorfrom_datemin_dt)groupbya.emp_noorderbygrowthselecta.emp_no,b.salary-c.salary growthfrom(selectemp_no,max(to_date)max_dt,min(from_date)min_dtfromsalariesgroupbyemp_nohavingmax(to_date)9999-01-01)aleftjoinsalaries bona.emp_nob.emp_noandb.to_datemax_dtleftjoinsalaries cona.emp_noc.emp_noandc.from_datemin_dtorderbygrowth评论区selectb.emp_no,(b.salary-a.salary)asgrowthfrom(selecte.emp_no,s.salaryfromemployees eleftjoinsalaries sone.emp_nos.emp_noande.hire_dates.from_date)a-- 入职工资表innerjoin(selecte.emp_no,s.salaryfromemployees eleftjoinsalaries sone.emp_nos.emp_nowheres.to_date9999-01-01)b-- 现在工资表ona.emp_nob.emp_noorderbygrowth-- 另一个selects1.emp_no,(s1.salary-e1.salary)asgrowthfrom# 查询当前工资(selectemp_no,salaryfromsalarieswhereto_date9999-01-01)ass1# 内连接2次查询结果innerjoin# 查询入职时候的工资(selects.emp_no,s.salaryfromsalariesassinnerjoinemployeesaseons.emp_noe.emp_noands.from_datee.hire_date)ase1ons1.emp_noe1.emp_noorderbygrowthSQL274 中位数的位置SQL274 中位数的位置selectjob,ceil(cnt/2)asstart,if(cnt%20,ceil(cnt/2),ceil(cnt/2)1)asendfrom(selectjob,count(1)ascntfromgradegroupbyjob)aorderbyjob# 评论区SELECTjob,floor((count(*)1)/2)ASstart,floor((count(*)2)/2)ASendFROMgradeGROUPBYjobORDERBYjob FLOOR(count(job)/20.5),CEIL(count(job)/20.5)另外参考SQL287selectjob,min(c1)asstart,max(c1)asendfrom(selectjob,count(1)over(partitionbyjoborderbyscore)c1,count(1)over(partitionbyjoborderbyscoredesc)c2,count(1)over(partitionbyjob)totalfromgrade)awherec1total/2andc2total/2groupbyjobSQL287 找聚合数据的中位数找聚合数据的中位数我的selectgradefrom(selectgrade,sum(number)over(orderbygrade)-number1asl,sum(number)over(orderbygrade)r,sum(number)over()totalfromclass_grade)awhere(floor(total/20.5)betweenlandr)or(ceil(total/20.5)betweenlandr)orderbygrade评论区selectgradefrom(selectgrade,sum(number)over(orderbygradeasc)asascnum,sum(number)over(orderbygradedesc)asdescnum,(selectsum(number)fromclass_grade)astotalfromclass_grade)subwhereascnumtotal/2anddescnumtotal/2orderbygradeasc;SQL280 第一次和第二次成功SQL280我的selectdistinctuser_id,first_buy_date,second_buy_date,cntfrom(select*,min(date)over(partitionbyuser_id)asfirst_buy_date,nth_value(date,2)over(partitionbyuser_idorderbydaterowsbetweenunboundedprecedingandunboundedfollowing)second_buy_date,count(1)over(partitionbyuser_id)ascntfromorder_infowheredate2025-10-15andstatuscompletedandproduct_namein(C,Python,Java))awherecnt1AI优化SELECTuser_id,first_buy_date,second_buy_date,cntFROM(SELECTuser_id,MIN(date)OVER(PARTITIONBYuser_id)asfirst_buy_date,-- 【修正点 1】补充第二个参数 2NTH_VALUE(date,2)OVER(PARTITIONBYuser_idORDERBYdateROWSBETWEENUNBOUNDEDPRECEDINGANDUNBOUNDEDFOLLOWING)assecond_buy_date,COUNT(1)OVER(PARTITIONBYuser_id)ascnt,-- 【优化点】添加行号用于精准取第一条替代 DISTINCTROW_NUMBER()OVER(PARTITIONBYuser_idORDERBYdate)asrnFROMorder_infoWHEREdate2025-10-15ANDstatuscompletedANDproduct_nameIN(C,Python,Java))aWHEREcnt1ANDrn1;-- 【优化点 2】直接取每组第一行避免 DISTINCT 的全局去重开销评论区selecta.user_id,min(a.date)asfirst_buy_date,max(a.date)assecond_buy_date,a.cntfrom-- 每个id取两条数据(selectuser_id,date,row_number()over(partitionbyuser_idorderbydate)asrank_no,count(*)over(partitionbyuser_id)ascntfromorder_infowheredate2025-10-16andstatuscompletedandproduct_namein(C,Java,Python))awherea.rank_no2anda.cnt2groupbya.user_id,a.cntorderbya.user_id;SQL292 推荐音乐SQL292请你编写一个SQL查询向user_id 1 的用户推荐其关注的人喜欢的音乐。不要推荐该用户已经喜欢的音乐并且按music的id升序排列。你返回的结果中不应当包含重复项我的第一反应是“我”喜欢的音乐被关注的人喜欢的音乐取差集但是会出现笛卡尔积所以把“我”喜欢的音乐行转列做成了列表只保留被关注的人喜欢的音乐的行数据selectmusic_namefrom(selectdistinctmusic_id,music_name-- select f.user_id, f.follower_id, um_ids, music_id as fm_id, music_namefromfollow f-- 连接被关注的人 喜欢的音乐leftjoinmusic_likes mlonf.follower_idml.user_idleftjoinmusic monm.idmusic_idleftjoin(-- “我”喜欢的音乐列转行后的列表selectuser_id,group_concat(music_id)asum_idsfrommusic_likesgroupbyuser_id)tont.user_idf.user_id# where coalesce(concat(,,um_ids, ,),-999) not like concat(%,, music_id, ,%)# 正确且稳健的写法 不包含在“我”喜欢的音乐列表里WHERECONCAT(,,COALESCE(um_ids,),,)NOTLIKECONCAT(%,,music_id,,%)andf.user_id1)agroupbymusic_id,music_nameorderbymusic_id题解注意distinct必须放在子查询里外层才能在id不出现在select后面时写在order by里SELECTmusic_nameFROM(SELECTDISTINCTm.id,m.music_nameFROMmusic_likes ml-- 我关注的人喜欢的音乐idJOINfollow fONml.user_idf.follower_idJOINmusic mONml.music_idm.idWHEREf.user_id1-- 我关注的人喜欢的音乐id不在我的音乐id里ANDml.music_idNOTIN(SELECTmusic_idFROMmusic_likesWHEREuser_id1))ASsubqueryORDERBYid;

相关文章:

SQL刷题_牛客_SQL热题

SQL201 查找入职员工时间排名倒数第三的员工所有信息【简单】 SQL201 查找入职员工时间排名倒数第三的员工所有信息 窗口函数其他方法 # 怎么算倒数第三 如果倒数第123都是同一个日期,那算谁? # 从运行结果倒推看,日期需要去重 select *…...

M2LOrder轻量级优势:3MB模型仅需2GB RAM,树莓派4B可部署验证

M2LOrder轻量级优势:3MB模型仅需2GB RAM,树莓派4B可部署验证 1. 项目概述 M2LOrder是一个专门用于情绪识别与情感分析的开源服务,基于独特的.opt模型文件格式构建。这个项目的最大亮点在于其极致的轻量化设计——最小的模型仅3MB大小&#…...

SmolVLA开源镜像免配置部署指南:RTX 4090一键启动Web推理

SmolVLA开源镜像免配置部署指南:RTX 4090一键启动Web推理 你是不是也对机器人控制感兴趣,但一看到复杂的模型部署、环境配置就头疼?想体验一下让机器人“看懂”世界并执行指令的AI模型,却不知道从何下手? 今天&#…...

ChatGLM3-6B-128K开源大模型展示:Ollama部署后128K医疗器械说明书合规检查

ChatGLM3-6B-128K开源大模型展示:Ollama部署后128K医疗器械说明书合规检查 1. 模型介绍与核心优势 ChatGLM3-6B-128K是ChatGLM系列最新一代的长文本处理专家,专门针对超长文本理解场景进行了深度优化。这个模型最大的亮点是能够处理长达128K的上下文内…...

SenseVoice Small会议纪要生成:多人对话分离+发言人标注实战教程

SenseVoice Small会议纪要生成:多人对话分离发言人标注实战教程 1. 项目概述与核心价值 在日常工作中,会议记录是个让人头疼的问题。特别是多人讨论的场景,既要听清楚每个人说了什么,又要准确记录发言内容,往往需要专…...

Cosmos-Reason1-7B多场景部署案例:高校AI通识课+专业课双轨教学工具

Cosmos-Reason1-7B多场景部署案例:高校AI通识课专业课双轨教学工具 1. 引言:当AI推理遇上高校教学 高校教学正面临一个有趣挑战:既要让学生理解AI技术原理,又要让他们实际运用AI解决专业问题。传统教学工具要么太理论化&#xff0…...

Cosmos-Reason1-7B实操手册:模型加载失败时的GPU内存泄漏排查方法

Cosmos-Reason1-7B实操手册:模型加载失败时的GPU内存泄漏排查方法 1. 问题背景与现象分析 当部署Cosmos-Reason1-7B这类大型多模态模型时,GPU内存管理成为关键挑战。这个7B参数的视觉语言模型需要约11GB显存才能正常运行,但在实际部署中常遇…...

Qwen3-0.6B-FP8从零开始:3步完成vLLM服务部署与Chainlit Web界面调用

Qwen3-0.6B-FP8从零开始:3步完成vLLM服务部署与Chainlit Web界面调用 想快速体验一个轻量级但能力不俗的大语言模型吗?Qwen3-0.6B-FP8就是一个绝佳的选择。它虽然参数规模小,但在推理、对话和指令遵循方面表现相当出色。今天,我就…...

AIGlasses_for_navigation低成本GPU算力方案:RTX 3060上同时运行5个视觉模型

AIGlasses_for_navigation低成本GPU算力方案:RTX 3060上同时运行5个视觉模型 1. 引言:当智能眼镜遇上算力挑战 想象一下,你戴着一副智能眼镜走在街上,它能实时告诉你脚下的盲道走向,提醒你前方的红绿灯状态&#xff…...

Chord视频理解工具部署教程:模型权重加载路径与缓存管理

Chord视频理解工具部署教程:模型权重加载路径与缓存管理 1. 工具定位与核心价值 Chord不是又一个“能看视频”的AI玩具,而是一个真正为本地化、高精度、低风险视频分析设计的工程级工具。它不依赖云端API,不上传任何视频数据,所…...

Retinaface+CurricularFace入门指南:人脸特征向量维度与距离度量原理

RetinafaceCurricularFace入门指南:人脸特征向量维度与距离度量原理 你是不是也好奇,人脸识别系统到底是怎么判断两张照片是不是同一个人的?它凭什么说“这两个人相似度0.85,是同一个人”,或者“相似度只有0.2&#x…...

FireRedASR-AED-L开源模型实战:对接LangChain构建语音增强型RAG系统

FireRedASR-AED-L开源模型实战:对接LangChain构建语音增强型RAG系统 1. 引言:当语音识别遇上智能检索 想象一下这个场景:你手头有一堆会议录音、客户访谈或课程讲座的音频文件。你想快速找到其中讨论“项目预算”或“技术架构”的具体片段。…...

Qwen1.5-0.5B-Chat部署利器:ModelScope SDK自动拉取教程

Qwen1.5-0.5B-Chat部署利器:ModelScope SDK自动拉取教程 想快速体验一个轻量级的智能对话服务,但又担心模型太大、部署太麻烦?今天,我们就来解决这个问题。本文将带你一步步部署阿里通义千问家族中最“苗条”的成员——Qwen1.5-0…...

cv_resnet101_face-detection_cvpr22papermogface保姆级教程:Windows/Linux双平台部署指南

cv_resnet101_face-detection_cvpr22papermogface保姆级教程:Windows/Linux双平台部署指南 你是不是也遇到过这样的烦恼?想在自己的电脑上跑一个人脸检测模型,结果被各种环境配置、依赖安装、路径设置搞得焦头烂额。网上的教程要么太简单&am…...

Qwen3-ASR-0.6B部署案例:私有化部署至医院内网,保障患者语音数据安全

Qwen3-ASR-0.6B部署案例:私有化部署至医院内网,保障患者语音数据安全 1. 引言:当语音识别遇上医疗数据安全 想象一下这个场景:一位医生在查房时,用录音笔记录了患者的病情口述。回到办公室,他需要将这些语…...

Chord视觉定位模型效果展示:支持模糊描述‘看起来像椅子的东西’准确定位

Chord视觉定位模型效果展示:支持模糊描述‘看起来像椅子的东西’准确定位 1. 项目简介 想象一下,你正在整理手机里上千张照片,想找出所有“看起来像椅子的东西”——可能是公园的长椅、家里的餐椅、甚至是一个形状奇特的石头。传统方法需要…...

lingbot-depth-pretrain-vitl-14入门必看:321M参数模型显存占用2-4GB的优化技术揭秘

lingbot-depth-pretrain-vitl-14入门必看:321M参数模型显存占用2-4GB的优化技术揭秘 想象一下,你有一个拥有3.21亿参数的视觉大模型,它不仅能从一张普通的彩色照片里“猜”出场景的深度,还能把不完整的深度图“脑补”完整。更关键…...

nomic-embed-text-v2-moe实操手册:支持100+语言的嵌入服务本地化部署

nomic-embed-text-v2-moe实操手册:支持100语言的嵌入服务本地化部署 想不想在本地电脑上,搭建一个能理解100多种语言的智能文本搜索引擎?今天要聊的nomic-embed-text-v2-moe,就能帮你实现这个想法。 简单来说,它是个…...

DAMOYOLO-S一文详解:Supervisor配置文件damoyolo.conf结构解析

DAMOYOLO-S一文详解:Supervisor配置文件damoyolo.conf结构解析 1. 引言 如果你用过我们提供的DAMOYOLO-S目标检测镜像,你可能会注意到一个细节:服务启动后,即使服务器重启,检测服务也会自动恢复。这背后其实是一个叫…...

Fish Speech-1.5开源模型解析:Transformer+Diffusion架构原理简析

Fish Speech-1.5开源模型解析:TransformerDiffusion架构原理简析 1. 引言:语音合成的新标杆 当你听到一段自然流畅的AI语音时,是否好奇它是如何生成的?Fish Speech-1.5作为当前最先进的文本转语音模型,正在重新定义语…...

历史影像修复新方案:cv_unet_image-colorization在档案数字化中的落地实践

历史影像修复新方案:cv_unet_image-colorization在档案数字化中的落地实践 1. 项目背景与核心价值 在档案数字化工作中,历史影像的修复一直是个技术难题。传统的黑白照片不仅缺乏色彩信息,还常常因为年代久远而出现褪色、模糊等问题。手动上…...

【C++11】详解lambda!

一、lambda表达式语法1.lambda表达式本质是一个数对匿名函象,跟普通函数不同的是它可以定义在函数内部。lambda表达式语法使用层而言没有类型,所以我们一般是用auto或者模板参数定义的对象去接收lambda对象。2.lambda表达式的格式 :[capture-…...

StructBERT文本相似度效果展示:‘预约挂号’vs‘怎么挂专家号’相似度0.74实录

StructBERT文本相似度效果展示:‘预约挂号’vs‘怎么挂专家号’相似度0.74实录 1. 引言:当AI理解医疗问句的深层含义 想象一下这样的场景:一位患者在医院网站上输入"怎么挂专家号",而知识库里的标准问题是"预约挂…...

Qwen2.5推理延迟优化:批处理部署实战技巧

Qwen2.5推理延迟优化:批处理部署实战技巧 如果你正在用Qwen2.5这类大模型做网页推理服务,大概率遇到过这样的场景:用户一个接一个地提问,服务器忙得团团转,但每个请求都得排队等,响应时间越来越长。用户等…...

CasRel模型实战案例:从新闻文本中批量抽取人物-组织-职务关系

CasRel模型实战案例:从新闻文本中批量抽取人物-组织-职务关系 1. 认识CasRel关系抽取模型 CasRel(Cascade Binary Tagging Framework)是一个专门从文本中自动提取实体关系的AI模型。想象一下,你有一大堆新闻文章,需要…...

Youtu-VL-4B-Instruct惊艳表现:多图关联推理——‘哪张图中的椅子最符合人体工学’

Youtu-VL-4B-Instruct惊艳表现:多图关联推理——‘哪张图中的椅子最符合人体工学’ 你有没有想过,让AI帮你从一堆产品图片里,挑出最符合人体工学的那一个?听起来像是设计师或者产品经理的活儿,对吧?但今天…...

MedGemma 1.5实战案例:基于MedQA数据集的鉴别诊断能力验证分享

MedGemma 1.5实战案例:基于MedQA数据集的鉴别诊断能力验证分享 1. 引言:为什么需要验证医疗AI的诊断能力? 最近,一个朋友在聊天时提到,他父亲身体不适,在网上查了半天症状,结果越看越心慌&…...

HY-MT1.5-1.8B跨境电商应用:商品详情自动翻译部署方案

HY-MT1.5-1.8B跨境电商应用:商品详情自动翻译部署方案 跨境电商卖家每天都要面对一个头疼的问题:商品详情页的翻译。把中文介绍翻译成英文、法文、德文……不仅工作量大,找专业翻译成本高,自己用工具翻出来的内容又常常词不达意&…...

GME-Qwen2-VL-2B-Instruct效果展示:农业病虫害图谱与防治建议文本匹配

GME-Qwen2-VL-2B-Instruct效果展示:农业病虫害图谱与防治建议文本匹配 想象一下,你是一位农业技术员,面对一张叶片上布满病斑的作物照片,需要从几十条防治建议中,快速找到最对症的那一条。传统方法要么靠经验&#xf…...

开源大模型趋势分析:bge-m3在AI知识库中的核心作用

开源大模型趋势分析:bge-m3在AI知识库中的核心作用 1. 项目概述与核心价值 BAAI/bge-m3是北京智源人工智能研究院推出的多语言通用嵌入模型,作为当前开源领域最强的语义嵌入模型之一,它在多语言理解、长文本处理和异构数据检索方面表现出色…...