高频 SQL 50 题(基础版)连接部分

embedded/2024/11/14 6:31:09/

1、使用唯一标识码替换员工ID

sql"># Write your MySQL query statement below
SELECT b.unique_id, a.name
FROM Employees as a
LEFT JOIN EmployeeUNI as b
ON a.id = b.id;

2、产品销售分析 I

sql"># Write your MySQL query statement below
SELECTp.product_name, s.year, s.price
FROM Sales s
JOINProduct p
ONs.product_id = p.product_id

总结

  • INNER JOIN:仅返回匹配的记录。
  • LEFT JOIN:返回左表的所有记录,即使右表没有匹配的记录。
  • RIGHT JOIN:返回右表的所有记录,即使左表没有匹配的记录。
  • FULL JOIN:返回左表和右表的所有记录,没匹配的部分用 NULL 填充。
  • CROSS JOIN:返回两张表的笛卡尔积,生成所有可能的组合。
  • SELF JOIN:将表与自身进行连接,常用于表示层级关系。
  • NATURAL JOIN:自动根据同名列进行连接。

在MySQL中,JOIN操作默认使用的是INNER JOIN。INNER JOIN是MySQL默认的JOIN类型。它返回两个表中符合条件的行。INNER JOIN使用ON关键字来指定连接条件,将两个表中符合条件的记录合并在一起,生成一个新的结果集。

3、进店却未进行过交易的顾客

sql"># Write your MySQL query statement below
SELECTv.customer_id,count(v.customer_id)count_no_trans
FROMVisits v
LEFT JOIN Transactions t
ON v.visit_id = t.visit_id
WHEREtransaction_id is NULL
GROUP BYv.customer_id

4、上升的温度

sql">SELECT a.id
FROM Weather as a
CROSS JOINWeather as b
WHEREdatediff(a.recordDate,b.recordDate) = 1 
ANDa.Temperature >b.Temperature

 

5、每台机器的进程平均运行时间

sql"># Write your MySQL query statement below
SELECTmachine_id, round(sum(if(activity_type = 'start', -timestamp, timestamp)) / count(*)*2, 3) as processing_time
FROM Activity
GROUP BYmachine_id

6、员工奖金

sql"># Write your MySQL query statement below
SELECTe.name, b.bonus
FROM Employee e
LEFT JOINBonus b
ONe.empId = b.empId
WHEREb.bonus is NULL OR b.bonus < 1000

 

7、学生们参加各科测试的次数

sql">SELECT s.student_id, s.student_name, sub.subject_name, IFNULL(grouped.attended_exams, 0) AS attended_exams
FROM Students s
CROSS JOIN Subjects sub
LEFT JOIN (SELECT student_id, subject_name, COUNT(*) AS attended_examsFROM ExaminationsGROUP BY student_id, subject_name
) grouped 
ON s.student_id = grouped.student_id AND sub.subject_name = grouped.subject_name
ORDER BY s.student_id, sub.subject_name;

8、至少有5名直接下属的经理

sql"># Write your MySQL query statement below
SELECT b.name
FROM Employee a
LEFT JOINEmployee b
ON a.managerId = b.id
GROUP BYa.managerId
HAVING COUNT(b.id)>=5  

9、确认率

sql"># Write your MySQL query statement below
SELECTT1.user_id,round(count(if(T2.action = "confirmed",true,null)) / count(*),2) AS confirmation_rate
FROMSignups as T1 
JOIN confirmations AS T2
ON T1.user_id = T2.user_id
GROUP BYT1.user_id;


http://www.ppmy.cn/embedded/137429.html

相关文章

【go从零单排】JSON序列化和反序列化

&#x1f308;Don’t worry , just coding! 内耗与overthinking只会削弱你的精力&#xff0c;虚度你的光阴&#xff0c;每天迈出一小步&#xff0c;回头时发现已经走了很远。 &#x1f4d7;概念 在 Go 语言中&#xff0c;处理 JSON 数据主要依赖于 encoding/json 包。这个包提…

C 语言函数

目录 1.简介 2.main() 3.参数的传值引用 4.函数指针 5.函数原型 6.exit() 7.函数说明符 7.1 extern 说明符 7.2 static 说明符 7.3 const 说明符 8.可变参数 1.简介 函数是一段可以重复执行的代码。它可以接受不同的参数&#xff0c;完成对应的操作。下面的例子就…

VLC-QT----Linux编译并运行示例

linux:ubuntu 16.04 qt:5.13.2 总体安装步骤 下载安装,编译 下载源码仓库,下载cmake,新建一个build文件夹,cd进去,执行代码 cmake .. -DCMAKE_BUILD_TYPEDebug 遇到报错,没有qt5Coreconfig,运行 sudo apt-get install qtdeclarative5-dev进行安装 遇到报错 Could not fi…

MySQL与Oracle对比及区别

一、比较 1、MySQL的特点 性能卓越&#xff0c;服务稳定&#xff0c;很少出现异常宕机&#xff1b; 开放源代码无版本制约&#xff0c;自主性及使用成本低&#xff1b; 历史悠久&#xff0c;社区和用户非常活跃&#xff0c;遇到问题及时寻求帮助&#xff1b; 软件体积小&#…

巧妙注入的奥秘:在 Spring 中优雅地使用 List 和 Map

文章目录 一、注入 List&#xff1a;同类项&#xff0c;一次拿下二、注入 Map&#xff1a;当键值对遇上多态三、进阶&#xff1a;使用 Qualifier 灵活注入四、总结总结推荐阅读文章 在 Spring 框架里&#xff0c;我们经常需要将不同的组件组织到集合中&#xff0c;比如在注入多…

边缘计算在工业互联网中的应用

&#x1f493; 博客主页&#xff1a;瑕疵的CSDN主页 &#x1f4dd; Gitee主页&#xff1a;瑕疵的gitee主页 ⏩ 文章专栏&#xff1a;《热点资讯》 边缘计算在工业互联网中的应用 边缘计算在工业互联网中的应用 边缘计算在工业互联网中的应用 引言 边缘计算概述 定义与原理 发展…

部署zabbix遇到问题: cannot find a valid baseurl for repo:centos-sclo-rh/x86 64 怎么解决 ?

安装 Zabbix 前端包&#xff0c;提示cannot find a valid baseurl for repo&#xff1a;centos-sclo-rh/x86 64 安装zabbix前端包 # yum install zabbix-web-mysql-scl zabbix-apache-conf-scl 解决办法&#xff1a; 原因是&#xff1a;CentOS7的SCL源在2024年6月30日停止维护…

odoo-040 odoo17前端的js方法调用后端py方法action报错

文章目录 问题描述梳理写法xml写法前端方法后端action的写法 错误解释 问题描述 在前端的kanban视图上添加了几个自定义按钮&#xff0c;按钮点击可以跳转到对应的tree视图&#xff0c;在写按钮调用方法的时候报错如下&#xff1a; 前端调用后端action报错&#xff1a; actio…