【SQL】牛客网SQL非技术入门40道代码|练习记录

跟着刷题:是橘长不是局长哦_哔哩哔哩_bilibili

6查询学校是北大的学生信息

select
device_id, university
from user_profile
where university = '北京大学'

7查找年龄大于24岁的用户信息

select
device_id,	gender,	age,	university
from user_profile
where age > 24

8查找某个年龄段的用户信息

select
device_id,	gender,	age
from user_profile
where age >= 20 and age <=23

9查找去除复旦大学的用户信息

select
device_id,	gender,	age,	university
from user_profile
where university != '复旦大学'

10用where过滤空值练习

select
device_id,	gender,	age,	university
from user_profile
where age is not null

11高级操作符练习(1)

select
device_id,	gender,	age,	university, gpa
from user_profile
where gender = 'male' and gpa >3.5

12高级操作符练习(2)

select
device_id,	gender,	age,	university, gpa
from user_profile
where university = '北京大学' or gpa >3.7

13Where in 和Not in

select
device_id,	gender,	age,	university, gpa
from user_profile
where university in ('北京大学', '复旦大学', '山东大学')

14操作符混合运用

select
device_id,	gender,	age,	university, gpa
from user_profile
where gpa>3.5 and university='山东大学'
or  gpa>3.8 and university='复旦大学'

15查看学校名称中含北京的用户

selectdevice_id,age,universityfromuser_profile
whereuniversity like '%北京%'

16查找GPA最高值

执行顺序是先where再from

excel里也是先筛选再聚合??为什么捏?好处是:先筛选之后数据量就变少了,然后再计算(或者更复杂的操作),数据量越少,执行速度就快,大概率

select
round(max(gpa), 1)
from user_profile
where university = '复旦大学'

17计算男生人数以及他们的平均GPA

函数count()

可以是

  • count(id):统计某个列中非 NULL 值的数量
  • count(*):统计表中的总行数
  • count(1):这与 COUNT(*) 相同
select
round(count(1), 1)
,round(avg(gpa), 1)
from user_profile
where gender='male'

17改题:计算男生人数以及全班的平均GPA

count(if())

select
round(count(if gender = 'male', 1, null), 1)
,round(avg(gpa), 1)
from user_profile

18分组计算练习题

分组聚合

selectgender,university,round(count(device_id), 1),round(avg(active_days_within_30), 1),round(avg(question_cnt), 1)
fromuser_profile
group by1,2

19分组过滤练习题

在excel里会怎么做:先求出平均发帖和回帖情况(用数据透视表做),然后再筛选符合条件的

关键字:having,having是在聚合之后的数据里进行筛选

select
university
,avg(question_cnt) as avg_question_cnt
,avg(answer_cnt) as avg_answer_cnt
from user_profile
group by university
having avg(question_cnt)<5 or avg(answer_cnt)<20

解法2:可以用子查询

不过having存在,就是让你可以少写一层子查询,仅此

select
*
from(selectuniversity,avg(question_cnt) as avg_question_cnt,avg(answer_cnt) as avg_answer_cntfromuser_profilegroup byuniversity
) as a
where avg(question_cnt) < 5 or avg(answer_cnt) < 20

20分组排序练习

关键字:order by,默认升序排列;降序加desc,如 order by 2 desc

select 
university
,avg(question_cnt)
from user_profile
group by 1
order by 2

21浙江大学用户题目回答情况

excel里XLOOKUP,只连接某个字段

关键字join,表连接

  • 左连接:left join,保证左边的表不变,右表拼接上来,如果没有拼上,右边的那条数据就不要了,保证了左表的完整性
  • 右连接:
  • 全连接:为空也保留,左右都保留
  • 内连接:join,只要一边没连上全都丢掉

1)只连接指定列:

select from question_practice_detail a
left join
(selectdevice_id, universityfrom user_profile
) b
on a.device_id = b.device_id

2)连接所有列:

select from question_practice_detail a
left join user_profile b
on a.device_id = b.device_id

先连接,后筛选,

select 
a.device_id as device_id
,a.question_id as question_id
,a.result as result
from question_practice_detail a
left join user_profile b
on a.device_id = b.device_id
where b.university = '浙江大学'

22统计每个学校的答过题的用户的平均题数

说明:某学校用户平均答题数量计算方式为该学校用户答题总次数除以答过题的不同用户个数

select
b.university as university
, count(1) / count(distinct a.device_id) as avg_answer_cnt
from question_practice_detail a
left join user_profile b
on a.device_id = b.device_id
group by 1
order by 1

23

事实表、维度表、信息表?

第一步连接(多表连接)

selectfrom question_practice_detail a
left join user_profile b
on a.device_id = b.device_id
left join question_detail c
on a.question_id = c.question_id

bug?刚刚在牛客提交,明明是一样的答案提交错误,等了一会就可以了

select
b.university as university
,c.difficult_level as difficult_level
,count(1) / count(distinct a.device_id) as avg_answer_cnt
from question_practice_detail a
left join user_profile b
on a.device_id = b.device_id
left join question_detail c
on a.question_id = c.question_id
group by 1, 2

24

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

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

相关文章

开源低代码平台技术为数字化转型赋能!

实现数字化转型升级是很多企业未来的发展趋势&#xff0c;也是企业获得更多发展商机的途径。如何进行数字化转型&#xff1f;如何实现流程化办公&#xff1f;这些都是摆在客户面前的实际问题&#xff0c;借助于开源低代码平台技术的优势特点&#xff0c;可以轻松助力企业降低开…

设计模式-装饰器模式(结构型)

装饰器模式 装饰器模式是一种结构模式&#xff0c;通过装饰器模式可以在不改变原有类结构的情况下向一个新对象添加新功能&#xff0c;是现有类的包装。 图解 角色 抽象组件&#xff1a;定义组件的抽象方法具体组件&#xff1a;实现组件的抽象方法抽象装饰器&#xff1a;实现…

沐风老师3DMAX一键多孔结构建模插件Porous使用方法

​3DMAX一键多孔结构建模插件Porous使用教程 3dMax是大家熟知的3D建模软件之一&#xff0c;其功能非常的强大&#xff0c;在科研绘图领域有着非常广泛的应用&#xff0c;但是由于科研绘图的图形&#xff08;模型&#xff09;一般都属于异形结构&#xff0c;手工绘制建模&#x…

mysql设置允许外部ip访问,局域网IP访问

&#xff08;支持MYSQL8版本&#xff09; 1. 登录进入mysql&#xff1b;mysql -uroot -p输入密码进入 2. 输入以下语句&#xff0c;进入mysql库&#xff0c;查看user表中root用户的访问 use mysql; select host,user from user; 3. 更新user表中root用户域属性&#xff0c…

Docker核心架构原理的深入分析

一、前言 由于平常工作中对Docker使用还是比较频繁的&#xff0c;但是一般都是基础的功能使用&#xff0c;并未对其核心架构原理做梳理&#xff0c;因此抽空简单总结一下这玩意的一些核心概念点知识&#xff0c;以备后面求职工作时可以更为深入地了解这个容器化工具。 二、Do…

springboot与flowable(2):流程部署

一、创建项目 创建springboot项目添加相关依赖。 <dependencies><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId></dependency><dependency><groupId>org.…

Upscayl:款利用人工智能技术,深度学习算法,实现图像无损放大和增强的强大工具。

Upscayl AI&#xff1a; Upscayl AI是一款基于先进的人工智能技术&#xff0c;特别是深度学习算法开发的图像增强工具。它能够智能地分析并改善图像质量&#xff0c;实现无损放大、细节重建和模糊消除&#xff0c;让老旧、低分辨率或模糊的照片焕发新生&#xff0c;达到高清画…

工程师 - VMware workstation pro个人版现已免费

May 13, 2024 VMware 桌面虚拟机管理程序(VMware Desktop Hypervisors) 使用行业标准桌面管理程序 VMware Workstation Pro for Windows 和 Linux 或 VMware Fusion for Mac 运行 Windows、Linux 和其他虚拟机。 Run Windows, Linux and other virtual machines with VMware Wo…

「51媒体」江苏媒体宣传报道,邀请媒体报道资源汇总

传媒如春雨&#xff0c;润物细无声&#xff0c;大家好&#xff0c;我是51媒体网胡老师。 江苏作为中国东部的重要省份&#xff0c;拥有丰富的媒体资源&#xff0c;包括电视台、广播电台、报纸以及网络媒体。 电视台 江苏卫视&#xff1a;作为江苏省唯一的省级卫视台&#xff…

Java面试_数据库篇_优化,事务,Mysql

Java面试_数据库篇_优化,事务,Mysql 优化如何定位慢查询方案一: 开源工具方案二: Mysql自带慢日志 如何分析慢SQL语句索引介绍索引聚簇索引和非聚簇索引&#xff0c;回表查询覆盖索引&#xff0c;超大分页优化索引创建的原则索引失效 谈谈sql优化的经验 事务事务特性隔离级别un…

system 和 exec 的区别

在 linux 中&#xff0c;使用 system 和 exec 都可以执行一个程序或者执行一个命令。两者的区别如下&#xff1a; system 中创建了一个子进程&#xff0c;在子进程中执行用户的命令&#xff0c;子进程执行完毕之后&#xff0c;system 会返回。exec 不会创建子进程&#xff0c;…

跟着大佬学RE(六)

findKey 嗯&#xff0c;就是一个窗口程序&#xff0c;没有输入&#xff0c;flag 应该就藏在程序里面 第一遍自己直接莽做&#xff0c;在string窗口&#xff0c;找到 flag{} 看到标红直接 nop 然后&#xff0c;然后就不知道怎么搞了 这串字符提示不能随便 nop &#xff0c;重新…

虚幻引擎5 Gameplay框架(五)

Gameplay重要类及重要功能使用方法&#xff08;四&#xff09; DeveloperSetting DeveloperSetting是在虚幻引擎中是一个基类&#xff0c;主要用于创建和管理开发者设置相关的类。这类设置允许开发者自定义或调整项目中的各种配置选项&#xff0c;而无需直接修改代码或构建设置…

大模型应用开发框架LangChain

LangChain是什么&#xff1f; 它是针对大语言模型开发的一个开源的抽象框架。下图以github的流行度为例&#xff0c;可以看到langchain在很短的时间流行度达到Pytorch框架的高度&#xff0c;在AI燤火的当下&#xff0c;非常的流行。 上图&#xff0c;可以看到短短不到1年&…

AMD在行动:揭示应用程序跟踪和性能分析的力量

AMD in Action: Unveiling the Power of Application Tracing and Profiling — ROCm Blogs 导言 Rocprof是一款强大的工具&#xff0c;设计用于分析和优化基于AMD ROCm平台上运行的HIP程序的性能&#xff0c;帮助开发者找出并解决性能瓶颈。Rocprof提供了多种性能数据&#x…

每日一题——Python实现PAT乙级1099 性感素数(举一反三+思想解读+逐步优化)

一个认为一切根源都是“自己不够强”的INTJ 个人主页&#xff1a;用哲学编程-CSDN博客专栏&#xff1a;每日一题——举一反三Python编程学习Python内置函数 Python-3.12.0文档解读 目录 我的写法 专业点评 时间复杂度分析 空间复杂度分析 综合点评 我要更强 优化点 …

人事信息管理系统(Java+MySQL)

一、项目背景 在现代企业中&#xff0c;管理大量员工的工作信息、薪资、请假、离职等事务是一项非常繁琐和复杂的任务。传统的手工管理方式不仅效率低下&#xff0c;而且容易出错。为了提高人事管理的效率&#xff0c;减少人工操作带来的错误&#xff0c;企业迫切需要一个高效…

【JAVASE】详讲java案例(中)

这篇接着讲用java语言写程序&#xff0c;本篇文章要讲三道题&#xff1a; &#xff08;1&#xff09;数字加密 &#xff08;2&#xff09;数组拷贝 &#xff08;3&#xff09;打印乘法表 一&#xff1a;数字加密 需求&#xff1a;某系统的数字密码是一个四位数&#xff0c…

【Leetcode】881. 救生艇

文章目录 题目思路代码复杂度分析时间复杂度空间复杂度 结果总结 题目 点击打开题目链接&#x1f517; 给定数组 p e o p l e people people 。 p e o p l e [ i ] people[i] people[i]表示第 i i i 个人的体重 &#xff0c;船的数量不限&#xff0c;每艘船可以承载的最大重…

【李宏毅-生成式 AI】Spring 2024, HW5:LLM Fine-tuning 实验记录

文章目录 1. Task Overview2. Overall Workflow3. Dataset 介绍4. 代码介绍4.1 环境介绍4.2 下载 dataset4.3 下载并加载模型4.2 Notebook 代码1&#xff09;import 部分2&#xff09;固定 seed3&#xff09;加载 LLM4&#xff09;加载 tokenizer5&#xff09;设置解码参数6&am…