6-14题连接 - 高频 SQL 50 题基础版

目录

  • 1. 相关知识点
  • 2. 例子
    • 2.6. 使用唯一标识码替换员工ID
    • 2.7- 产品销售分析 I
    • 2.8 - 进店却未进行过交易的顾客
    • 2.9 - 上升的温度
    • 2.10 - 每台机器的进程平均运行时间
    • 2.11- 员工奖金
    • 2.12-学生们参加各科测试的次数
    • 2.13-至少有5名直接下属的经理
    • 2.14 - 确认率

1. 相关知识点

  • left join

    • 以左表为基准,返回左表中所有的行,同时返回右表中与左表匹配的行。
    • 如果右表中没有匹配的行,则用NULL填充。
  • join和left join的区别

    • 如果是join则右侧的数据有的就插,没的就啥也不干,交白卷,也不留null
    • 但是left join让右侧数据在没有对应数据时补上了null
  • CROSS JOIN产生了一个结果集,该结果集是两个关联表的行的乘积

    • 2行表,与3行表使用cross join,得到2*3=6行数据
  • 相关函数

    函数例子含义
    DATEDIFF(前,后)DATEDIFF(‘2007-12-31’,‘2007-12-30’); # 1两个日期的差,前-后
    sum()sum(salary)根据分组求和
    if (判断条件,符合赋值,不符合赋值)if (salary>1000,1,0)根据if条件语句取值
    sum(if( ))sum( if (salary>1000,1,0))根据if条件语句赋值再根据分组求和
    avg(if( ))avg( if (salary>1000,1,0))根据if条件语句赋值再根据分组求均值
    round(,n)round(salary,3)保留n位小数

2. 例子

2.6. 使用唯一标识码替换员工ID

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

select unique_id,name 
from Employees e left join EmployeeUNI e1 
on e.id=e1.id;

2.7- 产品销售分析 I

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

select product_name,year,price
from Sales left join Product 
on Sales.product_id = Product.product_id;

2.8 - 进店却未进行过交易的顾客

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

-- 顾客可能光顾了购物中心但没有进行交易,一个顾客可能光顾多次,需用顾客id分组
-- 使用COUNT(*)可以输出GROUP BY后每个分组中的数据数量
-- 左连表,右表没有的数据赋值为null,即没有交易的transaction_id 为nullselect v.customer_id,count(*) as count_no_trans
from Visits v left join Transactions t on v.visit_id=t.visit_id
where t.transaction_id is null group by v.customer_id;

2.9 - 上升的温度

在这里插入图片描述
在这里插入图片描述

-- 找出与之前(昨天的)日期相比温度更高的所有日期的 id
-- DATEDIFF('2007-12-31','2007-12-30');   # 1
-- DATEDIFF('2010-12-30','2010-12-31');   # -1select w1.id 
from Weather w1, Weather w2
wheredatediff(w1.recordDate,w2.recordDate)=1 and w1.temperature>w2.temperature;

2.10 - 每台机器的进程平均运行时间

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

-- sum(if(activity_type = 'end',timestamp ,-timestamp ))
-- 如果activity_type为“end”,值为timestamp,为“start” 为-timestamp,所有数相加=end-start
-- count(distinct process_id),获取同一机器有几个进行idselect machine_id , round(sum(if(activity_type = 'end',timestamp ,-timestamp ))/count(distinct process_id),3) as processing_time 
from Activity 
group by machine_id;-- AVG(IF(activity_type = 'start', -timestamp, timestamp))
-- 如果activity_type为“end”,值为timestamp,为“start” 为-timestamp,所有数相加=end-start
-- 将所有数求平均,avg(1,2,3,4)/4,多除了2倍SELECT machine_id, ROUND(AVG(IF(activity_type = 'start', -timestamp, timestamp))*2,3) AS processing_time 
FROM Activity 
GROUP BY machine_id;

2.11- 员工奖金

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

-- join和left join的区别
-- 如果是join则右侧的数据有的就插,没的就啥也不干,交白卷,也不留null
-- 但是left join让右侧数据在没有对应数据时补上了null
select e.name,b.bonus
from Employee e left join bonus b
on e.empId=b.empId
where b.bonus <1000 or b.bonus is null;

2.12-学生们参加各科测试的次数

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

-- 学生表中,id是唯一的,将他作为主表
--  CROSS JOIN产生了一个结果集,该结果集是两个关联表的行的乘积
-- 2行表,与3行表使用cross join,得到2*3=6行数据
select st.student_id, st.student_name,su.subject_name,count(e.subject_name) AS attended_exams 
from Students st 
cross join Subjects su 
left join Examinations e 
on e.student_id=st.student_id and e.subject_name=su.subject_name
group by st.student_id, st.student_name,su.subject_name 
order by st.student_id,st.student_name;

2.13-至少有5名直接下属的经理

在这里插入图片描述
在这里插入图片描述

select name
from Employee 
where id in (select managerId  -- 查找大于5的经理idfrom Employeegroup by managerId  -- 根据id分组having count(*)>=5); -- 根据分组的数据进行求个数

2.14 - 确认率

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

-- s为注册表,有所有用户的信息,即为主表
select s.user_id,round(sum(if(action="confirmed",1,0))/count(s.user_id),2) confirmation_rate 
from Signups s 
left join Confirmations c 
on s.user_id =c.user_id 
group by s.user_id;

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

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

相关文章

树状数组——点修区查与区修点查

树状数组是一种代码量小&#xff0c;维护区间的数据结构 他可以实现&#xff1a; 1.区间修改&#xff0c;单点查询 2.单点修改&#xff0c;区间查询 当然&#xff0c;二者不可兼得&#xff0c;大人全都要的话&#xff0c;请选择线段树 前置知识&#xff1a; lowbit(x)操作…

LDM论文解读

论文名称&#xff1a;High-Resolution Image Synthesis with Latent Diffusion Models 发表时间&#xff1a;CVPR2022 作者及组织&#xff1a;Robin Rombach, Andreas Blattmann, Dominik Lorenz,Patrick Esser和 Bjorn Ommer, 来自Ludwig Maximilian University of Munich &a…

独一无二的设计模式——单例模式(Java实现)

1. 引言 亲爱的读者们&#xff0c;欢迎来到我们的设计模式专题&#xff0c;今天的讲解的设计模式&#xff0c;还是单例模式哦&#xff01;上次讲解的单例模式是基于Python实现&#xff08;独一无二的设计模式——单例模式&#xff08;python实现&#xff09;&#xff09;的&am…

web全屏api,实现元素放大全屏,requestFullscreen,exitFullscreen

全屏api 主要方法 document.exitFullscreen(); 退出页面全屏状态&#xff0c;document是全局文档对象 dom.requestFullscreen(); 使dom进入全屏状态&#xff0c;异步&#xff0c;dom是一个dom元素 dom.onfullscreenchange&#xff08;&#xff09;; 全…

专题四:Spring源码初始化环境与BeanFactory

上文我们通过new ClassPathXmlApplicationContext("applicationContext.xml");这段代码看了下Spring是如何将Xml里面内容注入到Java对象中&#xff0c;并通过context.getBean("jmUser");方式获得了一个对象实例&#xff0c;而避开使用new 来耦合。今天我们…

【TB作品】智能台灯控制器,ATMEGA128单片机,Proteus仿真

题目 8 &#xff1a;智能台灯控制器 基于单片机设计智能台灯控制器&#xff0c;要求可以调节 LED 灯的亮度&#xff0c;实现定时开启与关闭&#xff0c; 根据光照自动开启与关闭功能。 具体要求如下&#xff1a; &#xff08;1&#xff09;通过 PWM 功能调节 LED 灯亮度&#x…

娱乐圈发生震动,AI大模型技术已经取代了SNH48的小偶像?

自2023年以来&#xff0c;全球都被包裹在AI的惊天大潮之中&#xff0c;所有行业都在主动或被动地迎接改变。目前&#xff0c;各行业已经有大量公司正在把AI作为自身发展的最佳路径。其中&#xff0c;娱乐行业作为最被人们熟知的行业也在面对AI的发展时&#xff0c;发生着巨大变…

GMSB文章九:微生物的相关关系组间波动

欢迎大家关注全网生信学习者系列&#xff1a; WX公zhong号&#xff1a;生信学习者Xiao hong书&#xff1a;生信学习者知hu&#xff1a;生信学习者CDSN&#xff1a;生信学习者2 介绍 计算配对微生物在组间的相关关系波动情况进而评估不同分组的微生物状态。secom_linear 函数…

线性表与顺序存储结构(下)

前言 接上文&#xff08;线性表与顺序存储结构&#xff08;上&#xff09;&#xff09;。 这些顺序存储结构的方法在顺序表上下卷中已经提到过&#xff0c;但是有些许不同&#xff0c;可以为理解顺序表提供更丰富的视角。&#xff08;不过最主要的区别在于顺序表上下卷中的顺…

Python | 计算位涡平流项

写在前面 最近忙着复习、考试…都没怎么空敲代码&#xff0c;还得再准备一周考试。。。等考完试再慢慢更新了&#xff0c;今天先来浅更一个简单但是使用的python code 在做动力机制分析时&#xff0c;我们常常需要借助收支方程来诊断不同过程的贡献&#xff0c;其中最常见的一…

51单片机-点亮LED灯

目录 新建项目选择型号添加新文件到该项目设置字体和utf-8编码二极管如何区分正负极原理&#xff1a;CPU通过寄存器来控制硬件电路 用P2寄存器的值控制第一个灯亮进制转换编译查看P2寄存器的地址生成HEX文件把代码下载到单片机中 新建项目 选择型号 stc是中国生产的、这个里面…

利用Linked SQL Server提权

点击星标&#xff0c;即时接收最新推文 本文选自《内网安全攻防&#xff1a;红队之路》 扫描二维码五折购书 利用Linked SQL Server提权 Linked SQL server是一个SQL Server数据库中的对象&#xff0c;它可以连接到另一个SQL Server或非SQL Server数据源&#xff08;如Oracle&a…

初学者轻松搞定19个经典的Python程序以及代码演示

Python的经典程序展示了Python语言基本特性和功能的简单示例,这些程序在学习和理解Python编程语言的过程中起着至关重要的作用. 一些常见的经典Python程序及其在学习Python时的功能&#xff1a; 1.Hello, World! print("Hello, World!")解释:这是Python的基本输出…

primeflex overflow样式类相关的用法和案例

文档地址&#xff1a;https://primeflex.org/overflow 案例1 <script setup> import axios from "axios"; import {ref} from "vue";const message ref("frontend variable") axios.get(http://127.0.0.1:8001/).then(function (respon…

【Flink】Flink SQL

一、Flink 架构 Flink 架构 | Apache Flink 二、设置TaskManager、Slot和Parallelism 在Apache Flink中&#xff0c;设置TaskManager、Slot和Parallelism是配置Flink集群性能和资源利用的关键步骤。以下是关于如何设置这些参数的详细指南&#xff1a; 1. TaskManager 设置 …

【漏洞复现】致远互联FE协作办公平台——SQL注入

声明&#xff1a;本文档或演示材料仅供教育和教学目的使用&#xff0c;任何个人或组织使用本文档中的信息进行非法活动&#xff0c;均与本文档的作者或发布者无关。 文章目录 漏洞描述漏洞复现测试工具 漏洞描述 致远互联FE协作办公平台是一个专注于协同管理软件领域的数智化运…

关于内存和外存文件不同字符集下占用空间大小问题

关于内存和外存不同字符集下文件占用空间大小问题 存储&#xff08;外存&#xff09;的文件中的字符&#xff1a; ASCII&#xff1a;每个字符占用1个字节&#xff0c;用来存储英文字符和常用标点符号。ISO-8859-1&#xff1a;每个字符占用1个字节&#xff0c;向下兼容ASCII。G…

DS18B20单总线数字温度传感器国产替代MY18E20 MY1820 MY18B20Z MY18B20L(一)

前言 DS18B20是全球第一个单总线数字温度传感器&#xff0c;推出时间已经超过30年&#xff0c;最早由美国达拉斯半导体公司推出&#xff0c;2001年1月&#xff0c;美信以25亿美元收购达拉斯半导体&#xff08;Dallas Semiconductor&#xff09;&#xff0c;而美信在2021年8月被…

DM达梦数据库存储过程

&#x1f49d;&#x1f49d;&#x1f49d;首先&#xff0c;欢迎各位来到我的博客&#xff0c;很高兴能够在这里和您见面&#xff01;希望您在这里不仅可以有所收获&#xff0c;同时也能感受到一份轻松欢乐的氛围&#xff0c;祝你生活愉快&#xff01; &#x1f49d;&#x1f49…

RDMA通信2:RDMA基本元素和组成 通信过程元素关系解析 视频教程

哈哈哈&#xff0c;今天我们把下面这张图理解了&#xff0c;我们的任务就完成了&#xff01; 视频教程在这&#xff1a;1.2 RDMA基本元素和组成 通信过程元素关系解析_哔哩哔哩_bilibili 一、WQ和WQE 工作队列元素(work queue element,WQE)&#xff1a;是软件下发给硬件的任务…