牛客网SQL训练2—SQL基础进阶

文章目录

  • 一、基本查询
  • 二、数据过滤
  • 三:函数
  • 四:分组聚合
  • 五:子查询
  • 六:多表连接
  • 七:组合查询
  • 八:技能专项-case when使用
  • 九:多表连接-窗口函数
  • 十:技能专项-having子句
  • 十一:技能专项-一网打尽时间函数
  • 十二:技能专项-一网打尽字符函数


一、基本查询

题目1:查询所有投递用户user id并去重】
在这里插入图片描述

select user_id
from deliver_record
group by user_id
;

在这里插入图片描述


题目2:查询限制行数】
在这里插入图片描述

select user_id,job_id,device,job_salary,deliver_date
from deliver_record
limit 2
;

在这里插入图片描述

题目3:将查询列重新命名】
在这里插入图片描述

select job_salary '职位工资'
from deliver_record
;

在这里插入图片描述

题目4:查询表总行数】
在这里插入图片描述

select count(*) cnt
from deliver_record
;

在这里插入图片描述

二、数据过滤

题目1:查询在pc上投递的所有投递记录】
在这里插入图片描述

select * from deliver_record_detail
where device='pc'
;

在这里插入图片描述

题目2:查询投递最低最高薪资差别大于2的职位的投递用户】
在这里插入图片描述

select user_id
from deliver_record_detail
where (max_salary-min_salary)>2
;

在这里插入图片描述

题目3**:查询薪资信息不为空的职位投递记录】
在这里插入图片描述

select * from deliver_record_detail
where min_salary is not null or max_salary is not null
;

在这里插入图片描述

题目4:查询城市为北京的职位投递记录】
在这里插入图片描述

select * from deliver_record_detail
where job_city like '北京%'
;

在这里插入图片描述

三:函数

题目1:计算总刷题数,并将所选列名改为总刷题数】
在这里插入图片描述

selectsum(pass_count) '总刷题数'
from questions_pass_record_detail
;

在这里插入图片描述


题目2:计算刷题总人数】
在这里插入图片描述

selectcount(distinct user_id) cnt
from questions_pass_record_detail
;

在这里插入图片描述

题目3:找出sql类题目的单次最大刷题数】
在这里插入图片描述

select max(pass_count) maxCnt
from questions_pass_record_detail
where question_type='sql'
;

在这里插入图片描述

题目4:计算单次平均刷题数】
在这里插入图片描述

select avg(pass_count) avgCnt
from questions_pass_record_detail
;

在这里插入图片描述

四:分组聚合

题目1:统计每天总刷题数】
在这里插入图片描述

select date days ,sum(pass_count) passCnt
from questions_pass_record_detail
group by date 
;

在这里插入图片描述


题目2:统计每天刷题数超过5的user id以及刷题数】
在这里插入图片描述

select date ,user_id,sum(pass_count) total_pass_count
from questions_pass_record_detail
where pass_count>5
group by date,user_id
;

在这里插入图片描述

题目3:统计不同类型题目的刷题数,并按刷题数进行升序排列】
在这里插入图片描述

select question_type,sum(pass_count) passCnt
from questions_pass_record_detail
group by question_type
order by passCnt
;

在这里插入图片描述

五:子查询

题目1:查询2022年毕业用户的刷题记录】
在这里插入图片描述

select user_id,question_type,device,pass_count,date
from questions_pass_record
where user_id in (select user_idfrom user_infowhere graduation_year='2022')
;

在这里插入图片描述

题目2:查询2022年以来刷题用户的用user id和毕业院校】
在这里插入图片描述

select user_id,university
from user_info
where user_id in (select user_idfrom questions_pass_recordwhere substr(date,1,4)>='2022'group by user_id)
;

在这里插入图片描述

六:多表连接

题目1:查询被投递过的职位信息(答案有问题)】
在这里插入图片描述

# 能过的答案
select * from job_info;# 根据题意解
select a.company_id,count(distinct b.user_id) cnt
from (select job_id,company_idfrom job_info
) a join (select user_id,job_id,resume_if_checkedfrom deliver_recordwhere resume_if_checked='1'
) b on a.job_id=b.job_id
group by a.company_id
order by company_id 
;

在这里插入图片描述


题目2:查询每个公司查看过的投递用户数】
在这里插入图片描述

select a.company_id,count(distinct b.user_id) cnt
from (select job_id,company_idfrom job_info
) a join (select user_id,job_id,resume_if_checkedfrom deliver_recordwhere resume_if_checked='1'
) b on a.job_id=b.job_id
group by a.company_id
;

在这里插入图片描述


七:组合查询

题目1:查询职位城市在北京或者职位工资高于100000的job_id和company_id】
在这里插入图片描述

select job_id,company_id
from job_info
where job_city='北京'
union all
select job_id,company_id
from job_info
where salary>100000
;

在这里插入图片描述


题目2:查询职位发布时间在2021年后或职位城市为上海的job_id, boss_id, company_id】
在这里插入图片描述

select job_id,boss_id,company_id
from (select job_id,boss_id,company_id,job_cityfrom job_infowhere substr(post_time,1,4)>='2021'union select job_id,boss_id,company_id,job_cityfrom job_infowhere job_city='上海'		
) a
order by job_city
;

在这里插入图片描述

八:技能专项-case when使用

题目1:判断其是否有过购买记录】
在这里插入图片描述

select customer_id,if(latest_place_order_date is not null,1,0) if_placed_order
from customers_info
;

在这里插入图片描述

题目2:请按城市对客户进行排序,如果城市为空,则按国家排序】
在这里插入图片描述

select customer_id,gender,city,country,age,latest_place_order_date
from customers_info
order by city,country
;

在这里插入图片描述

题目3:分群并计算群体人数】
在这里插入图片描述

select age_group,count(customer_id)  user_count
from (select case when age<20 then '20以下' when age between 20 and 50 then '20-50'when age>50 then '50以上' when age is null then '未填写'else '其他' end age_group,customer_idfrom customers_info
) a
group by age_group
;

在这里插入图片描述

九:多表连接-窗口函数

题目1:查询每天刷题通过数最多的前二名用户id和刷题数】
在这里插入图片描述

select date,user_id,pass_count
from (select date,user_id,pass_count,row_number() over(partition by date order by pass_count desc) rnfrom questions_pass_record
) a
where rn<=2
order by date
;

在这里插入图片描述


题目2:查询用户刷题日期和下一次刷题日期】
在这里插入图片描述

select user_id,date,lead(date,1,'None') over(partition by user_id order by date) nextdate
from questions_pass_record
order by user_id,date
;

在这里插入图片描述

十:技能专项-having子句

题目1:输出提交次数大于2次的用户ID且倒序排列】
在这里插入图片描述

selectuser_id
from done_questions_record
group by user_id
having count(1)>2
order by user_id desc
;

在这里插入图片描述

题目2:输出提交且通过次数大于2 的用户ID且升序排列】
在这里插入图片描述

selectuser_id
from done_questions_record
where result_info='1'
group by user_id
having count(1)>2
;

在这里插入图片描述


题目3**:验证刷题效果,输出题目真实通过率】
在这里插入图片描述
question_pass_rate:题目通过率=通过题目总数(去重)/总题目数(去重)
pass_rate:提交通过正确率=通过题目总数(不去重)/提交次数(不去重)
question_per_cnt:每题目平均提交次数=总提交次数(不去重)/总题目数(去重)

select user_id,count(distinct if(result_info=1,question_id,null))/count(distinct question_id) question_pass_rate,sum(result_info)/count(done_time) pass_rate,count(done_time)/count(distinct question_id) question_per_cnt
from done_questions_record
group by user_id 
having question_pass_rate>0.6
order by user_id
;

在这里插入图片描述

十一:技能专项-一网打尽时间函数

题目1**:广告点击的高峰期】
在这里插入图片描述

select click_hour,click_cnt
from(select hour(click_time) click_hour,count(trace_id) click_cnt,row_number() over(order by count(trace_id) desc) rn from user_ad_click_timegroup by hour(click_time)
) a 
where rn=1
;

在这里插入图片描述


题目2**:输出在5min内完成点击购买的用户ID】
在这里插入图片描述

select  a.user_id  uid
from user_ad_click_time a
left join user_payment_time b 
on a.user_id=b.user_id and a.trace_id=b.trace_id
where timestampdiff(minute,click_time,pay_time)<=5
order by a.user_id desc
;

在这里插入图片描述

十二:技能专项-一网打尽字符函数

题目1:字符函数正则匹配1(答案有问题)】
在这里插入图片描述

# 能过的答案
select id,comment
from comment_detail
where comment like '%是%' or (comment like '%试%')
order by id
;# 根据题意解
select id,comment
from comment_detail
where comment like '是%' or comment like '求%'
order by id
;

在这里插入图片描述


题目2:字符函数正则匹配2】
在这里插入图片描述

select id,comment
from comment_detail
where comment like '是%' or comment like '求%'
;

在这里插入图片描述

题目3:话题的分布情况】
在这里插入图片描述

select substring_index(subject_set,',',1) subject_id1,count(1) cnt
from comment_detail
where substring_index(substring_index(subject_set,',',2),',',-1)='1002'
group by substring_index(subject_set,',',1)
order by subject_id1
;

在这里插入图片描述

题目4**:评论替换和去除】
在这里插入图片描述

select id,replace(comment,',','') comment
from comment_detail
where length(replace(comment,',',''))>3

由于题目说的是汉字长度大于3,所以这里就要使用char_length()而不是length();
char_length():单位为字符,不管汉字还是数字或者是字母都算是一个字符。
length(): 单位是字节,utf8编码下,一个汉字三个字节,一个数字或字母一个字节。gbk编码下,一个汉字两个字节,一个数字或字母一个字节。

在这里插入图片描述

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

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

相关文章

Web信息收集,互联网上的裸奔者

Web信息收集&#xff0c;互联网上的裸奔者 1.资产信息收集2.域名信息收集3.子域名收集4.单点初步信息收集网站指纹识别服务器类型(Linux/Windows)网站容器(Apache/Nginx/Tomcat/IIS)脚本类型(PHP/JSP/ASP/ASPX)数据库类型(MySQL/Oracle/Accees/SqlServer) 5.单点深入信息收集截…

Linux-----10、查找命令

# 查找命令 # 1、 命令查找 Linux下一切皆文件&#xff01; which 命令 &#xff1a;找出命令的绝对路径 whereis 命令 &#xff1a;找出命令的路径以及文档手册信息 [rootheima ~]# which mkdir /usr/bin/mkdir[rootheima ~]# whereis mkdir mkdir: /usr/bin/mkdir /usr/…

一款计算机顶会爬取解析系统 paper info

一款计算机顶会爬取解析系统 paper info 背景项目实现的功能 技术方案架构设计项目使用的技术选型 使用方法本地项目部署使用ChatGPT等大模型创建一个ChatGPT助手使用阿里云 顶会数据量 百度网盘pfd文件json文件 Q&A github链接 &#xff1a;https://github.com/codebricki…

(反序列化)小记录

目录 [CISCN 2023 华北]ez_date 绕过MD5和sha1强相关绕过 date()绕过 payload [FSCTF 2023]ez_php [CISCN 2023 华北]ez_date <?php error_reporting(0); highlight_file(__FILE__); class date{public $a;public $b;public $file;public function __wakeup(){if(is_a…

【快刊】Springer旗下2区,仅1个月左右录用,国人极其友好!

计算机类 • 好刊解读 今天小编带来Springer旗下计算机领域好刊&#xff0c;如您有投稿需求&#xff0c;可作为重点关注&#xff01;后文有相关领域真实发表案例&#xff0c;供您投稿参考~ 01 期刊简介 ✅出版社&#xff1a;Springer ✅影响因子&#xff1a;4.0-5.0 ✅期刊…

docker小白第三天

docker小白第三天 docker为什么会比虚拟机快 1、docker有着比虚拟机更少的抽象层。不需要Hypervisor实现硬件资源虚拟化&#xff0c;运行在docker容器上的程序直接使用的都是实际物理机的硬件资源&#xff0c;因此在CPU、内存利用率上docker将会在效率上有明显优势。 2、dock…

Vray批量云渲染怎么设置?Vray批量云渲染教程

V-Ray&#xff0c;作为业界知名的渲染引擎&#xff0c;其内置的Batch Render&#xff08;批处理渲染&#xff09;功能让艺术家和设计者们能够高效率地处理多场景或多视角的渲染任务。通过这一功能&#xff0c;用户可以设置一系列渲染队列&#xff0c;无需监督即可自动完成整个渲…

【期末向】“我也曾霸榜各类NLP任务”-bert详解

预训练语言模型 预训练语言模型于 2015 年被首次提出&#xff08;Dai & Le,2015&#xff09;。首先我们要了解一下什么是预训练模型&#xff0c;举个例子&#xff0c;假设我们有大量的维基百科数据&#xff0c;那么我们可以用这部分巨大的数据来训练一个泛化能力很强的模型…

C语言编程经典100例——21至30例

目录 第 21 例 第 22 例 第 23 例 第 24 例 第 25 例 第 26 例 第 27 例 第 28 例 第 29 例 第 30 例 第 21 例 程序源码&#xff1a; /* 题目&#xff1a;猴子吃桃问题&#xff1a;猴子第一天摘下若干个桃子&#xff0c;当即吃了一半&#xff0c;还不过瘾&#xf…

渗透测试框架——Cobalt Strike

渗透测试框架——Cobalt Strike Cobalt Strike是一款非常成熟的渗透测试框架。Cobalt Strike在3.0版本之前是基于Metasploit框架工作的&#xff0c;可以使用Metasploit的漏洞库。从3.0版本开始&#xff0c;Cobalt Strike不再使用Metasploit的漏洞库&#xff0c;成为一个独立的…

JavaEE:多线程(1):线程是啥?怎么创建和操作?

进程的问题 本质上来说&#xff0c;进程可以解决并发编程的问题 但是有些情况下进程表现不尽如人意 1. 如果请求很多&#xff0c;需要频繁的创建和销毁进程的时候&#xff0c;此时使用多进程编程&#xff0c;系统开销就会很大 2. 一个进程刚刚启动的时候&#xff0c;需要把…

自动化测试Selenium node 配置

查看自己chrome浏览器的版本 下载chromedriver对应版本&#xff0c;下载当前版本中最大版本。 https://npm.taobao.org/mirrors/chromedriver 安装java jdk &#xff0c;版本至少1.7, 并配置jdk环境变量 以下2个文件放在同一个目录下 Cmd地址切换到第四点目录下&#xff0c;然…

Android开发的技术与开发流程

目录 引言 1. Android开发环境搭建 1. 安装Java Development Kit&#xff08;JDK&#xff09; 2. 安装Android Studio 3. 配置虚拟设备&#xff08;可选&#xff09; 4. 创建你的第一个Android项目 5. 连接实体设备&#xff08;可选&#xff09; 2. Android基础知识 1…

影响云渲染质量的几大要素是什么?影响云渲染质量的主要原因有?

对于3D渲染从业者而言&#xff0c;实现高效和高质量的渲染是一个常见的挑战。由于三维场景的复杂性&#xff0c;相关计算和处理通常需要大量的计算能力和存储&#xff0c;尤其是当面对着高分辨率图像、详细的动画或全局光照效果等要求时&#xff0c;渲染时间往往会大幅增加。针…

了解构造函数原型对象的语法特征,掌握 JavaScript 中面向对象编程的实现方式,基于面向对象编程思想实现 DOM 操作的封装。(第三天)

有什么不懂可以去看我前两天的笔记 https://blog.csdn.net/weixin_70007095/article/details/134905674 目录 有什么不懂可以去看我前两天的笔记 JavaScript 进阶 - 第3天笔记 编程思想 面向过程 面向对象 构造函数 原型对象 constructor 属性 对象原型 原型继承 原型链 JavaSc…

HarmonyOS学习 第2节 DevEco Studio工程介绍

工程配置页 界面布局介绍 代码编辑区、通知栏、工程目录区、预览区 工程目录区 便于理解&#xff0c;可以切换为 Ohos AppScope主要用于存放整个应用公共的信息与资源 entry默认的初始模块ets文件用于存放编写的代码文件configuration存放相应模块的配置文件resources对应模块…

leetcode 1466

leetcode 1466 使用dfs 遍历图结构 如图 node 4 -> node 0 -> node 1 因为节点数是n, 边长数量是n-1。所以如果是从0出发的路线&#xff0c;都需要修改&#xff0c;反之&#xff0c;如果是通向0的节点&#xff0c;例如节点4&#xff0c;则把节点4当作父节点的节点&…

保障网络安全:了解威胁检测和风险评分的重要性

在当今数字时代&#xff0c;网络安全问题变得愈发突出&#xff0c;而及时发现和迅速应对潜在威胁成为保障组织信息安全的首要任务。令人震惊的是&#xff0c;根据2023年的数据&#xff0c;平均而言&#xff0c;检测到一次网络入侵的时间竟然长达207天。这引起了对安全策略和技术…

威睿三合一电驱动系统斩获“2023汽车新供应链百强-金辑奖”

10月19日&#xff0c;2023第五届“金辑奖”颁奖盛典在上海圆满落幕。威睿公司“高效低噪碳化硅电驱动系统”在动力总成电气化领域脱颖而出&#xff0c;荣获“2023中国汽车新供应链百强”荣誉称号。 “金辑奖”由盖世发起&#xff0c;旨在“发现好公司推广好技术成就汽车人”&a…

利用机器学习实现客户细分:提升市场营销效果的技术策略

客户细分是一项关键的市场营销策略&#xff0c;可以帮助企业更好地了解其目标受众&#xff0c;个性化定制产品和服务&#xff0c;提高市场营销效果。本文将介绍如何利用机器学习算法实现客户细分&#xff0c;包括数据准备、特征工程、算法选择、模型训练和评估等关键步骤。通过…