牛客网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/…

Py-While循环语句

while循环语句&#xff1a; 注意&#xff1a; while的条件需要得到布尔类型的结果&#xff0c;true继续循环&#xff0c;false退出循环需要设置循环终止的条件&#xff0c;不可以让程序一直无线循环运行下去空格缩进与if一样 语法格式:(只要条件满足会一直循环) while 布尔…

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

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

Java面试题13

1.数据库的三范式是什么&#xff1f; 数据库的三范式是指数据库设计的一种规范&#xff0c;用来规定如何将数据进行组织和存储&#xff0c;以便减 少冗余、提高数据的一致性和准确性。具体来说&#xff0c;三范式分为三个层次&#xff1a; 第一范式&#xff08;1NF&#xff09…

(反序列化)小记录

目录 [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;需要把…

Ubuntu安装MySQL未设置密码/修改密码/删除密码

一、导致问题的可能原因 1、操作系统安装时的默认设置 在Ubuntu系统中&#xff0c;安装MySQL后默认不会设置密码。如果没有手动进行设置&#xff0c;就会导致未设置密码的问题。 2、管理员在安装过程中忘记设置密码 在MySQL安装过程中&#xff0c;管理员很容易因为疏忽而忘…

微信小程序scroll-view的scroll-into-view和vanUI的tabs标签结合使用

背景&#xff1a;当tabs下的tab切换时&#xff0c;scroll-view滑动到对应的位置 注意点&#xff1a; van-tabs和scroll-view标签分开编写 van-tab的name属性代表标签名称&#xff0c;作为匹配的标识符 scroll-into-view的id值必须是动态值&#xff0c;即tab切换后的值 scr…

Python 自动化之处理图片(一)

图片美化与大小调整 文章目录 图片美化与大小调整前言一、基本结构二、引入库三、用户输入模块四、图片美化模块五、大小调整模块总结 前言 本文主要分为两部分。一是图片的美化吧算是&#xff0c;主要从亮度、对比、色彩饱和度、锐度四个方面进行美化&#xff1b;二是图片的像…

自动化测试Selenium node 配置

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

【基础知识】Hadoop生态系统

Hadoop是一个开源的分布式计算框架,主要用于大数据的存储和处理&#xff0c;即一个包含多种组件的综合分布式系统,组件相互协作完成从数据存储到计算分析的完整功能。 关键词——容灾 主从结构、多副本 主要特点 分布式存储 - Hadoop采用HDFS文件系统,可以将大数据分布式存…

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;渲染时间往往会大幅增加。针…