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,一经查实,立即删除!

相关文章

JavaScript——属性的检测和枚举

目录 任务描述 相关知识 属性的检测 属性的枚举 编程要求 任务描述 本关任务&#xff1a;给定一个属性的名字&#xff0c;请先判断它属于哪一个对象&#xff0c;然后返回该对象的所有自有属性名连接成的字符串。 如&#xff1a;school对象有三个自有属性name,location,s…

达梦数据库系列—15. 表的备份和还原

目录 1、表备份 2、表还原 1、表备份 表备份和表还原恢复&#xff0c;都必须在联机状态下进行。 与备份数据库与表空间不同&#xff0c;不需要备份归档日志&#xff0c;不存在增量备份之说。 CREATE TABLE TAB_FOR_RES_02(C1 INT);CREATE INDEX I_TAB_FOR_RES_02 ON TAB_F…

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

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

如何安装和配置Monit

前些天发现了一个巨牛的人工智能学习网站&#xff0c;通俗易懂&#xff0c;风趣幽默&#xff0c;忍不住分享一下给大家。点击跳转到网站。 关于 Monit Monit 是一个有用的程序&#xff0c;可以自动监控和管理服务器程序&#xff0c;以确保它们不仅保持在线&#xff0c;而且文…

Java与前端框架集成开发指南

Java与前端框架集成开发指南 大家好&#xff0c;我是免费搭建查券返利机器人省钱赚佣金就用微赚淘客系统3.0的小编&#xff0c;也是冬天不穿秋裤&#xff0c;天冷也要风度的程序猿&#xff01; 引言 在当今互联网应用开发中&#xff0c;Java作为一种强大的后端语言&#xff0…

程序人生 - (002)

作为一名程序员&#xff0c;在编程和软件开发的过程中&#xff0c;通常会有一些深刻的感悟和体会。这些感悟不仅仅是关于技术的&#xff0c;也包括对工作的态度、职业的发展和人生的理解。 代码即逻辑&#xff1a;编写代码不仅仅是使用编程语言&#xff0c;更重要的是用逻辑思维…

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…

【本地调试】使用 Nginx 和 Hosts 文件实现本地开发调试请求转发

可以按照以下 nginx 配置来设置&#xff0c;通过 nginx 和 host 将网页的请求转发到本地的后端服务器&#xff0c;以方便本地开发调试 一、nginx 配置 worker_processes 1;events {worker_connections 1024; }http {include mime.types;default_type application/js…

【Python】 数据分析中的常见统计量:中位数

那年夏天我和你躲在 这一大片宁静的海 直到后来我们都还在 对这个世界充满期待 今年冬天你已经不在 我的心空出了一块 很高兴遇见你 让我终究明白 回忆比真实精彩 &#x1f3b5; 王心凌《那年夏天宁静的海》 中位数&#xff08;Median&#xff09;是统计学…

深入浅出3D感知中的优化与基于学习的技术1(原创系列)

近期几乎看了所有有关NERF技术论文&#xff0c;本身我研究的领域不在深度学习技术方向&#xff0c;是传统的机器人控制和感知。所以总结了下这部分基于学习的感知技术&#xff0c;会写一个新的系列教程讲解这部分三维感知技术的发展到最新的技术细节&#xff0c;并支持自己最近…

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

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

解析Java中1000个常用类:Currency类,你学会了吗?

在线工具站 推荐一个程序员在线工具站:程序员常用工具(http://cxytools.com),有时间戳、JSON格式化、文本对比、HASH生成、UUID生成等常用工具,效率加倍嘎嘎好用。程序员资料站 推荐一个程序员编程资料站:程序员的成长之路(http://cxyroad.com),收录了一些列的技术教程…

解析connectionReset异常的原因与解决方案

解析connectionReset异常的原因与解决方案 大家好&#xff0c;我是免费搭建查券返利机器人省钱赚佣金就用微赚淘客系统3.0的小编&#xff0c;也是冬天不穿秋裤&#xff0c;天冷也要风度的程序猿&#xff01;今天我们将深入探讨Java中connectionReset异常的原因及其解决方案。这…

遥远星辰中的觉醒:超大质量黑洞的苏醒与人类的未来

遥远星辰中的觉醒&#xff1a;超大质量黑洞的苏醒与人类的未来 在浩渺无垠的宇宙中&#xff0c;星辰的闪烁仿佛是时间的涟漪&#xff0c;穿越亿万年的距离&#xff0c;抵达我们的眼眸。而在这片星辰大海的深处&#xff0c;一个惊人的现象正在悄然上演——距离地球3.6亿光年之遥…

Unity获取剪切板内容粘贴板图片文件文字

最近做了一个发送消息的unity项目&#xff0c;需要访问剪切板里面的图片文字文件等&#xff0c;翻遍了网上的东西&#xff0c;看了不是需要导入System.Windows.Forms&#xff08;关键导入了unity还不好用&#xff0c;只能用在纯c#项目中&#xff09;&#xff0c;所以我看了下py…

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

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