MYSQL 连接

news2024/11/16 23:40:46

高频 SQL 50 题(基础版) - 学习计划 - 力扣(LeetCode)全球极客挚爱的技术成长平台

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

SELECT COALESCE(unique_id, NULL) AS unique_id,name
FROM Employees
LEFT JOIN EmployeeUNI ON  Employees.id = EmployeeUNI.id;

左连接(Left Join)是一种用于联接两个或多个表的操作,它返回左表中的所有行以及与右表中满足联接条件的匹配行。如果右表中没有与左表匹配的行,则对应的结果列将填充为 NULL 值。

左连接的语法如下:

SELECT 列名
FROM 左表
LEFT JOIN 右表 ON 连接条件;

1068. 产品销售分析 I

SELECT P.product_name,year,price
FROM Sales S
LEFT JOIN  Product P ON P.product_id = S.product_id;

1581. 进店却未进行过交易的顾客

SELECT customer_id,COUNT(customer_id) AS count_no_trans
FROM Visits V
LEFT JOIN Transactions T ON T.visit_id = V.visit_id 
WHERE transaction_id IS NULL
GROUP BY customer_id

197. 上升的温度

TIMESTAMPDIFF函数,小的日期前面

类似笛卡尔积的做法

SELECT w1.id Id
FROM Weather AS w1,Weather AS w2
WHERE TIMESTAMPDIFF(DAY,w2.RecordDate,w1.RecordDate) = 1 AND w1.Temperature > w2.Temperature;

DATE_ADD(w2.RecordDate, INTERVAL 1 DAY)是一个日期函数,在给定的日期上添加指定的时

如果w2.RecordDate的值是'2023-10-17',那么DATE_ADD(w2.RecordDate, INTERVAL 1 DAY)将返回'2023-10-18'。

连接后的表如下(左w1,右w2):

 

SELECT w1.id Id
FROM Weather w1
LEFT JOIN(
    SELECT RecordDate,Temperature
    FROM Weather
)w2
ON w1.RecordDate = DATE_ADD(w2.RecordDate,INTERVAL 1 day)
WHERE w1.Temperature > w2.Temperature

1661. 每台机器的进程平均运行时间

子查询的表如下

 SUM(time):算出来总运行时间

(COUNT(*)/2):一个进程包括start和end两个时间戳,所以要除以2

SELECT machine_id,ROUND(SUM(time)/(COUNT(*)/2),3) processing_time
FROM (
    SELECT machine_id,process_id,IF(activity_type = 'start', round(-`timestamp`, 3), round(`timestamp` , 3)) time
    FROM Activity 
)t
GROUP BY machine_id;

577. 员工奖金

SELECT name,bonus
FROM (
    SELECT name,bonus
    FROM Employee E
    LEFT JOIN Bonus B ON E.empId = B.empId
) t
WHERE bonus < '1000' OR bonus IS NULL;

1280. 学生们参加各科测试的次数

    SELECT student_id, subject_name, COUNT(*) AS attended_exams
    FROM Examinations
    GROUP BY student_id, subject_name

直接统计Examinations表

SELECT 
    *
FROM
    Students s
CROSS JOIN
    Subjects sub

用交叉连接CORSS JOIN将两张表连接

把成绩表左连接到做了自然连接的表,保证每个学生各门课字段都在,不会因为没参加考试就不算

SELECT stu.student_id,stu.student_name,s.subject_name,IFNULL(grouped.attended_exams,0) AS attended_exams
FROM Students stu 
CROSS JOIN Subjects s 
LEFT JOIN(
    SELECT student_id, subject_name, COUNT(*) AS attended_exams
    FROM Examinations
    GROUP BY student_id, subject_name
)grouped
ON grouped.student_id = stu.student_id AND grouped.subject_name = s.subject_name
ORDER BY stu.student_id,s.subject_name

570. 至少有5名直接下属的经理

SELECT name
FROM Employee
WHERE id IN (
    SELECT managerId
    FROM Employee
    GROUP BY managerId 
    HAVING COUNT(*) >= 5
) 

1934. 确认率

SELECT sign.user_id,IFNULL(ROUND(hit/total,2),0.00) confirmation_rate
FROM Signups sign
LEFT JOIN(
    SELECT user_id,time_stamp,COUNT(action) total
    FROM Confirmations
    GROUP BY user_id 
)grouped 
ON grouped.user_id = sign.user_id
LEFT JOIN(
    SELECT user_id,COUNT(action) hit
    FROM Confirmations
    WHERE action = 'confirmed'
    GROUP BY user_id 
)hitcount
ON hitcount.user_id = sign.user_id

 

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

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

相关文章

7.MidBook项目经验之阿里OSS,微信支付(退款),定时任务,图表数据处理

1.阿里云实名认证 阿里云对象存储oss,标准高频率访问, 低频访问存储,归档存储(根本不经常访问) 冗余存储(备份) 读写权限(所有人还是自己访问) Component public class ConstantOssPropertiesUtils implements InitializingBean {不用注入,由spring创建bean使用流 MultipartFil…

SpringBoot整合RabbitMQ并实现消息发送与接收

系列文章目录 解析JSON格式参数 & 修改对象的key VUE整合Echarts实现简单的数据可视化 Java中运用BigDecimal对字符串的数值进行加减乘除等操作 List&#xff1c;HashMap&#xff1c;String,String&#xff1e;&#xff1e;实现自定义字符串排序&#xff08;key排序、Valu…

Node介绍(nvm安装和npm常用命令)

文章目录 Node 介绍为什么要学习 Node.jsNode.js 是什么Node能做什么nvm常用的 nvm 命令npm 快捷键npm 常用命令切换 npm 下包镜像源常用命令 Node 介绍 为什么要学习 Node.js 企业需求 具有服务端开发经验更改front-endback-end全栈开发工程师基本的网站开发能力 服务端前端…

TP4067带电池反接保护500MA线性锂电池充电芯片

概述 TP4067 是一款完整的单节锂电池充电器&#xff0c;带电池正负极反接保护输入电源正负极反接保护的单芯片&#xff0c;兼容大小3mA-600mA充电电流。采用涓流、恒流、恒压控制&#xff0c;SOT23-6封装与较少的外部元件数目使得TP4067成为便携式应用的理想选择.TP4067可以适…

ims-go项目搭建

通过集成开发工具Goland创建项目 整合Gin框架&#xff0c;在终端中输入如下命令&#xff1a; go get -u github.com/gin-gonic/gin 整合Gorm&#xff0c;安装命令如下&#xff1a; go get -u gorm.io/gorm 安装sqlserver驱动&#xff0c;安装命令如下&#xff1a; go get -u…

docker报错问题解决:Error Invalid or corrupt jarfile app.jar

文章目录 1.问题描述2.问题分析3.问题解决 1.问题描述 此时处在 /home/ubuntu/app 目录下&#xff0c;并且在该目录下有一个 jenkins-0.0.1-SNAPSHOT.jar。 我在 /home/ubuntu/app 目录下执行了 docker 容器运行命令&#xff1a; # 映射 8859 端口 # 容器名为 jenkins-demo #…

常用Python自动化测试框架有哪些?优缺点对比

随着技术的进步和自动化技术的出现&#xff0c;市面上出现了一些自动化测试框架。只需要进行一些适用性和效率参数的调整&#xff0c;这些自动化测试框架就能够开箱即用&#xff0c;大大节省了测试时间。而且由于这些框架被广泛使用&#xff0c;他们具有很好的健壮性&#xff0…

Unity DOTS System与SystemGroup概述

最近DOTS终于发布了正式的版本, 我们来分享以下DOTS里面System关键概念&#xff0c;方便大家上手学习掌握Unity DOTS开发。 对惹&#xff0c;这里有一个游戏开发交流小组&#xff0c;希望大家可以点击进来一起交流一下开发经验呀&#xff01; System是迭代计算与处理World中的…

面试总结分享:25道数据库测试题

1&#xff09;什么是数据库测试&#xff1f; 数据库测试也称为后端测试。数据库测试分为四个不同的类别。数据完整性测试 数据有效性测试 数据库相关的性能 测试功能&#xff0c;程序和触发器 2&#xff09;在数据库测试中&#xff0c;我们需要正常检查什么&#xff1f; 通常&a…

【UE5】 ListView使用DataTable数据的蓝图方法

【UE5】 ListView使用DataTable数据的蓝图方法 ListView 是虚幻引擎中的一种用户界面控件&#xff0c;用于显示可滚动的列表。它可以用于显示大量的数据&#xff0c;并提供了各种功能和自定义选项来满足不同的需求。 DataTable是虚幻引擎中的一种数据表格结构&#xff0c;用于存…

美创科技信创数据安全「利基者」!

近日&#xff0c;第一新声研究部正式发布《2023年中国信创网络安全产品竞争力象限》&#xff08;下称“象限报告“&#xff09;。 ◼︎ 象限报告综合考虑企业占有率、在技术/应用上的成熟度、在客户方面的交付完成度及口碑、产品在市场/营销/商业模式/行业拓展等战略上的领先性…

在ERP管理系统中,库存管理的基本流程是什么?

在ERP管理系统中&#xff0c;库存管理的基本流程是什么&#xff1f; 下面我就以我们公司正在用的简道云库存管理系统为例&#xff0c;为大家进行库存管理基本流程的演示 这个系统是我们公司自己搭建的&#xff0c;大家如果有需要可以自取&#xff0c;也可以在模板的基础上自行…

0.3万粉暴涨700万播放,实现B站流量、变现双丰收

- 导语 经过国庆长假&#xff0c;2023年已经进入最后一个季度&#xff0c;平台内的热点一换再换&#xff0c;现在B站年轻人们正在关心什么内容、喜欢什么内容呢&#xff1f;本期飞瓜数据&#xff08;B站版&#xff09;盘点近期热点内容&#xff0c;提取有效素材和创作模式&…

基于JAVA实现的WEB端UI自动化 -自动化测试简单介绍

1 - Web自动化测试简介 软件测试领域技术不断创新 手工测试重复性工作量较大 技术革新&#xff0c;通过使用工具或者脚本代码让计算机帮助测试人员完成一些简单操作 1.1 自动化测试的本质 其本质是把手工测试转化成使用计算机、软件、程序来测试产品的过程。在设计 测试用例并…

GitLab-访问返回403 forbidden问题处理

访问gitlab时报错forbidden 一般访问量大&#xff0c;密码错误频率高的时候&#xff0c;gitlab防爆机制启动了&#xff0c;对IP做了封禁&#xff0c;导致某些IP访问的是否返回 403 forbidden 1. 查看被封的IP /opt/gitlab/embedded/bin/redis-cli -s /var/opt/gitlab/redis/red…

基于Spring boot轻松实现一个多数据源框架

Spring Boot 提供了 Data JPA 的包&#xff0c;允许你使用类似 ORM 的接口连接到 RDMS。它很容易使用和实现&#xff0c;只需要在 pom.xml 中添加一个条目&#xff08;如果使用的是 Maven&#xff0c;Gradle 则是在 build.gradle 文件中&#xff09;。 <dependencies>&l…

颠覆传统有线通讯,虹科IO-Link wireless解决方案让智能机床的旋转部件实现可靠低延迟无线通信

作为新工业革命的一部分&#xff0c;传统机床正迅速发展成为智能机床。在工业4.0技术的推动下&#xff0c;新的创新应用使机床的效率和功能达到了更高的水平。要实现这些功能&#xff0c;需要在机床上集成传感器和执行器&#xff0c;以提供实时数据和自动化控制。然而&#xff…

【数据结构】队列的实现与优化指南

一、前言 队列是一种重要的数据结构&#xff0c;它按照“先入先出”&#xff08;FIFO&#xff09;的原则管理数据。本文将介绍队列的概念、应用场景&#xff0c;以及如何使用数组实现普通队列和环形队列。 二、内容 2.1 概述 &#xff08;1&#xff09;什么是队列&#xff1…

ant的echo任务

通过echo&#xff0c;可以将一个消息输出到当前的日志记录器、监听器&#xff0c;如果没有覆盖的话&#xff0c;默认就是在控制台输出&#xff08;即System.out&#xff09;。 也可以将消息发送到文件。 可以使用的参数&#xff1a; 举例&#xff0c;build.xml文件的的内容如…

Sectigo OV通配符1590元

通配符SSL证书是一种特殊的SSL证书&#xff0c;它能够为多个域名提供加密保护&#xff0c;这种证书可以用于保护一个主域名及其所有子域名&#xff0c;适合子域名比较多的个人或者企事业单位使用。通配符SSL证书既节省了管理证书的时间&#xff0c;又减少了购买SSL证书的成本&a…