【力扣 | SQL题 | 每日四题】力扣2082, 2084, 2072, 2112, 180
四题都比较简单,可以直接秒。
1. 力扣2082:富有客户的数量
1.1 题目:
表: Store
+-------------+------+ | Column Name | Type | +-------------+------+ | bill_id | int | | customer_id | int | | amount | int | +-------------+------+ bill_id 是这个表的主键(具有唯一值的列)。 每一行包含一个订单的金额及相关客户的信息。
编写解决方案找出 至少有一个 订单的金额 严格大于 500 的客户的数量。
返回结果格式如下示例所示:
示例 1:
输入: Store 表: +---------+-------------+--------+ | bill_id | customer_id | amount | +---------+-------------+--------+ | 6 | 1 | 549 | | 8 | 1 | 834 | | 4 | 2 | 394 | | 11 | 3 | 657 | | 13 | 3 | 257 | +---------+-------------+--------+ 输出: +------------+ | rich_count | +------------+ | 2 | +------------+ 解释: 客户 1 有 2 个订单金额严格大于 500。 客户 2 没有任何订单金额严格大于 500。 客户 3 有 1 个订单金额严格大于 500。
1.2 思路:
75+通过率的简单题。
1.3 题解:
-- 以客户id分组,只要他的最高的一次订单金额是严格大于500的就保留下来即可
with tep as (select customer_idfrom Storegroup by customer_idhaving max(amount) > 500
)select count(*) rich_count
from tep
2. 力扣2084:为订单类型为0的客户删除类型为1的订单
2.1 题目:
活动表: Orders
+-------------+------+ | Column Name | Type | +-------------+------+ | order_id | int | | customer_id | int | | order_type | int | +-------------+------+ order_id是此表的主键列。 此表的每一行都表示订单的ID、订购该订单的客户的ID以及订单类型。 订单可以是类型0或类型1。
编写SQL查询以根据以下条件报告所有订单:
- 如果客户至少有一个类型为0的订单,则不要报告该客户的任何类型为1的订单。
- 否则,报告客户的所有订单。
按任意顺序返回结果表。
查询结果格式如下例所示。
示例 1:
输入: Orders table: +----------+-------------+------------+ | order_id | customer_id | order_type | +----------+-------------+------------+ | 1 | 1 | 0 | | 2 | 1 | 0 | | 11 | 2 | 0 | | 12 | 2 | 1 | | 21 | 3 | 1 | | 22 | 3 | 0 | | 31 | 4 | 1 | | 32 | 4 | 1 | +----------+-------------+------------+ 输出: +----------+-------------+------------+ | order_id | customer_id | order_type | +----------+-------------+------------+ | 31 | 4 | 1 | | 32 | 4 | 1 | | 1 | 1 | 0 | | 2 | 1 | 0 | | 11 | 2 | 0 | | 22 | 3 | 0 | +----------+-------------+------------+ 解释: 客户1有两个类型为0的订单。我们两个都返回。 客户2的订单类型为0,订单类型为1。我们只返回类型为0的订单。 客户3的订单类型为0,订单类型为1。我们只返回类型为0的订单。 客户4有两个类型1的订单。我们两个都返回。
2.2 思路:
分为两种情况。
然后将两种情况查询到的结果union起来。
2.3 题解:
-- 先找到客户的订单类型有0的那些客户
with tep as (select customer_idfrom Ordersgroup by customer_idhaving min(order_type) = 0
)-- 然后找到不在tep表里的客户的其他客户
-- 查询这些客户的所有信息
select *
from Orders
where customer_id not in (select * from tep)union all-- 找到这些客户,并删除该客户类型是1的订单
select order_id, o.customer_id, order_type
from Orders o
join tep
on o.customer_id = tep.customer_id
where order_type = 0
3. 力扣2072:赢得比赛的大学
3.1 题目:
表: NewYork
+-------------+------+ | Column Name | Type | +-------------+------+ | student_id | int | | score | int | +-------------+------+ 在 SQL 中,student_id 是这个表的主键。 每一行包含纽约大学 (New York University) 中一名学生一次考试的成绩。
表: California
+-------------+------+ | Column Name | Type | +-------------+------+ | student_id | int | | score | int | +-------------+------+ 在 SQL 中,student_id 是这个表的主键。 每一行包含加州大学 (California University) 中一名学生一次考试的成绩。
纽约大学和加州大学之间举行了一场比赛。这场比赛由两所大学中相同数量的学生参加。拥有更多优秀学生的大学赢得这场比赛。如果两所大学的优秀学生数量相同,则这场比赛平局。
优秀学生是指在考试中获得 90% 或更高成绩的学生。
返回:
- "New York University" 若纽约大学赢得这场比赛。
- "California University" 若加州大学赢得这场比赛。
- "No Winner" 若这场比赛平局。
返回结果格式如下示例所示:
示例 1:
输入: NewYork 表: +------------+-------+ | student_id | score | +------------+-------+ | 1 | 90 | | 2 | 87 | +------------+-------+ California 表: +------------+-------+ | student_id | score | +------------+-------+ | 2 | 89 | | 3 | 88 | +------------+-------+ 输出: +---------------------+ | winner | +---------------------+ | New York University | +---------------------+ 解释: 纽约大学有 1 名优秀学生,加州大学有 0 名优秀学生。
示例 2:
输入: NewYork 表: +------------+-------+ | student_id | score | +------------+-------+ | 1 | 89 | | 2 | 88 | +------------+-------+ California 表: +------------+-------+ | student_id | score | +------------+-------+ | 2 | 90 | | 3 | 87 | +------------+-------+ 输出: +-----------------------+ | winner | +-----------------------+ | California University | +-----------------------+ 解释: 纽约大学有 0 名优秀学生,加州大学有 1 名优秀学生。
示例 3:
输入: NewYork 表: +------------+-------+ | student_id | score | +------------+-------+ | 1 | 89 | | 2 | 90 | +------------+-------+ California 表: +------------+-------+ | student_id | score | +------------+-------+ | 2 | 87 | | 3 | 99 | +------------+-------+ 输出: +-----------+ | winner | +-----------+ | No Winner | +-----------+ 解释: 纽约大学和加州大学均有 1 名优秀学生。
3.2 思路:
3.3 题解:
SELECT
CASE WHEN (SELECT COUNT(*) FROM NewYork WHERE score >= 90) > (SELECT COUNT(*) FROM California WHERE score >= 90) THEN 'New York University'WHEN (SELECT COUNT(*) FROM NewYork WHERE score >= 90) < (SELECT COUNT(*) FROM California WHERE score >= 90) THEN 'California University'ELSE 'No Winner'
END AS winner;
4. 力扣2112:最繁忙的机场
4.1 题目:
表: Flights
+-------------------+------+ | Column Name | Type | +-------------------+------+ | departure_airport | int | | arrival_airport | int | | flights_count | int | +-------------------+------+ (departure_airport, arrival_airport) 是该表的主键列。 该表的每一行都表示从 departure_airport 出发并到达 arrival_airport 的 flights_count 航班。
编写一个 SQL 来查询 流量最大 的机场的 ID。客流量最大的机场是指从该机场起飞或抵达该机场的航班总数最多的机场。如果有多个机场流量最大,请全部查询出来。
以 任意顺序 返回结果表。
查询结果格式如下所示。
示例 1:
输入: Flights 表: +-------------------+-----------------+---------------+ | departure_airport | arrival_airport | flights_count | +-------------------+-----------------+---------------+ | 1 | 2 | 4 | | 2 | 1 | 5 | | 2 | 4 | 5 | +-------------------+-----------------+---------------+ 输出: +------------+ | airport_id | +------------+ | 2 | +------------+ 解释: 1 号机场有 9 个航班 (4 个出发, 5 个到达). 2 号机场有 14 个航班 (10 个出发, 4 个到达). 4 号机场有 5 个航班 (5 个到达). 客流量最大的机场是 2 号机场。
示例 2:
输入: Flights 表: +-------------------+-----------------+---------------+ | departure_airport | arrival_airport | flights_count | +-------------------+-----------------+---------------+ | 1 | 2 | 4 | | 2 | 1 | 5 | | 3 | 4 | 5 | | 4 | 3 | 4 | | 5 | 6 | 7 | +-------------------+-----------------+---------------+ 输出: +------------+ | airport_id | +------------+ | 1 | | 2 | | 3 | | 4 | +------------+ 解释: 1 号机场有 9 个航班 (4 个出发, 5 个到达). 2 号机场有 9 个航班 (5 个出发, 4 个到达). 3 号机场有 9 个航班 (5 个出发, 4 个到达). 4 号机场有 9 个航班 (5 个出发, 4 个到达). 5 号机场有 7 个航班 (7 个出发). 6 号机场有 7 个航班 (7 个到达). 流量最大的机场是机场 1、2、3 和 4。
4.2 思路:
先炸裂,然后就是简单的分组。
4.3 题解:
-- 炸裂,然后得到需要的表
with tep as (select departure_airport airport, flights_count from Flightsunion all select arrival_airport airport, flights_count from Flights
)-- 然后再查询每个机场的人流量是否是最大的。
select airport airport_id
from tep
group by airport
having sum(flights_count) >= all(-- 这里是查询到每个机场的人流量select sum(flights_count)from tepgroup by airport
)
5. 力扣180:连续出现的数字
5.1 题目:
表:Logs
+-------------+---------+ | Column Name | Type | +-------------+---------+ | id | int | | num | varchar | +-------------+---------+ 在 SQL 中,id 是该表的主键。 id 是一个自增列。
找出所有至少连续出现三次的数字。
返回的结果表中的数据可以按 任意顺序 排列。
结果格式如下面的例子所示:
示例 1:
输入: Logs 表: +----+-----+ | id | num | +----+-----+ | 1 | 1 | | 2 | 1 | | 3 | 1 | | 4 | 2 | | 5 | 1 | | 6 | 2 | | 7 | 2 | +----+-----+ 输出: Result 表: +-----------------+ | ConsecutiveNums | +-----------------+ | 1 | +-----------------+ 解释:1 是唯一连续出现至少三次的数字。
5.2 思路:
感觉之前写过类似的,遇见就很简单。
三张表join然后where过滤,最后注意distinct去重。
5.3 题解:
-- join三张表自连接
select distinct l1.num ConsecutiveNums
from Logs l1, Logs l2, Logs l3
where
l1.id + 1 = l2.id and l1.num = l2.num
and
l2.id + 1 = l3.id and l2.num = l3.num相关文章:
【力扣 | SQL题 | 每日四题】力扣2082, 2084, 2072, 2112, 180
四题都比较简单,可以直接秒。 1. 力扣2082:富有客户的数量 1.1 题目: 表: Store ------------------- | Column Name | Type | ------------------- | bill_id | int | | customer_id | int | | amount | int | -------------…...
快速了解Java中的15把锁!
目录 了解 总览 乐观锁 悲观锁 互斥锁和同步锁 公平锁 非公平锁 自旋锁 可重入锁(递归锁) ReadWriteLock读写锁 共享锁 独占锁 偏向锁 轻量级锁 重量级锁 锁优化 在 Java 中,锁是一种用于实现多线程之间同步和互斥的机制。 了…...
TypeScript 封装 Axios 1.7.7
随着Axios版本的不同,类型也在改变,以后怎么写类型? yarn add axios1. 封装Axios 将Axios封装成一个类,同时重新封装request方法 重新封装request有几个好处: 所有的请求将从我们定义的requet请求中发送ÿ…...
【数据结构】【链表代码】移除链表元素
移除链表元素 /*** Definition for singly-linked list.* struct ListNode {* int val;* struct ListNode *next;* };*/struct ListNode* removeElements(struct ListNode* head, int val) { // 创建一个虚拟头节点,以处理头节点可能被删除的情况 struct…...
作文-杭州游记
杭州的学习与游历 在这个风景如画的城市——杭州,学习信息学的日子如同西湖的水,清澈而又深邃。在这里,课堂与自然的交融、技术与文化的碰撞,构成了一幅独特的画卷。 学习之旅 信息学的课程不仅仅是对代码和算法的解析࿰…...
降压芯片TPS54821
降压芯片TPS54821 介绍 价格低廉,只需1.5元。是一个同步整流降压BUCK电路。MOS管内置。输入电压为4.5V至17V,输出电压为0.6V到15V,输出电流最大到8A。是QFN封装,焊接时有些许困难。得益于QFN封装,其引线电感非常的小…...
YOLO v1详解解读
🚀 在此之前主要介绍了YOLO v5源码的安装和使用(YOLO v5安装教程),接下来将探索YOLO的实现原理,作为一个金典的单阶段目标检测算法,应该深度的理解它的构建思想;所以本系列文章将从LOVO v1出发到…...
【动态规划-最长公共子序列(LCS)】【hard】【科大讯飞笔试最后一题】力扣115. 不同的子序列
给你两个字符串 s 和 t ,统计并返回在 s 的 子序列 中 t 出现的个数,结果需要对 10^9 7 取模。 示例 1: 输入:s “rabbbit”, t “rabbit” 输出:3 解释: 如下所示, 有 3 种可以从 s 中得到 “rabbit”…...
深入理解 JavaScript 中的 void`运算符和 yield*表达式
深入理解 JavaScript 中的 void 运算符和 yield* 表达式 在 JavaScript 中,void 运算符和 yield* 表达式是两个功能独特但常被忽视的运算符。本文将详细介绍它们的用法和应用场景,帮助您更好地理解和运用这两个运算符。 目录 void 运算符概述void 运算…...
第四节——从深层剖析指针(让你不再害怕指针)
文章目录 1. 字符指针变量剑指offer例题 2. 数组指针变量2.1 数组指针变量是什么?2.2 数组指针变量怎么初始化 3. ⼆维数组传参的本质代码实现 4. 函数指针变量4.1 函数指针变量的创建4.3 两段有趣的代码4.3.1 typedef 关键字 5. 函数指针数组的定义 1. 字符指针变量…...
openpnp - 吸嘴校正失败的opencv参数分析
文章目录 openpnp - 吸嘴校正失败的opencv参数分析概述笔记阶段验证 - N2吸嘴校验完NT1NT2 阶段验证 - 底部相机高级校验完NT1NT2 参数比对保存 “阶段验证 - N2吸嘴校验完” 的NT1/NT2图像重建参数检测环境NT1ok的3个参数值NT1err的3个参数值NT2ok的3个参数值NT2err的3个参数值…...
【Python】Marmir 使用指南:Python 驱动的电子表格生成器
Marmir 是一个由 Python 驱动的电子表格生成工具,专门用于将 Python 数据结构(如字典、列表等)转换为电子表格文件(如 Excel)。Marmir 的设计目标是提供比传统电子表格库(如 xlwt)更强大和灵活的…...
深入理解 JavaScript 事件循环机制:单线程中的异步处理核心
深入理解 JavaScript 事件循环机制:单线程中的异步处理核心 JavaScript 是一门单线程的编程语言,也就是说它在同一时间只能执行一个任务。然而,现代 Web 应用经常需要处理大量的异步操作,如用户输入、网络请求、定时器等。为了确…...
Stream流的终结方法(二)——collect
1.Stream流的终结方法 2. collect方法 collect方法用于收集流中的数据放到集合中去,可以将流中的数据放到List,Set,Map集合中 2.1 将流中的数据收集到List集合中 package com.njau.d10_my_stream;import java.util.*; import java.util.f…...
【C语言系统编程】【第一部分:操作系统知识】1.1.操作系统原理
第一部分:操作系统知识 1.1 操作系统原理 1.1.1 进程管理 1.1.1.1 进程的概念与生命周期 进程是程序在计算机中的一次执行实例,包括了程序的代码、数据、以及运行的上下文环境。进程管理是操作系统的核心任务之一。 作用:管理所有执行中…...
基于Java+VUE+echarts大数据智能道路交通信息统计分析管理系统
大数据智能交通管理系统是一种基于Web的系统架构,通过浏览器/服务器(B/S)模式实现对城市交通数据的高效管理和智能化处理。该系统旨在通过集成各类交通数据,包括但不限于车辆信息、行驶记录、违章情况等,来提升城市管理…...
leetcode-42. 接雨水 单调栈
给定 n 个非负整数表示每个宽度为 1 的柱子的高度图,计算按此排列的柱子,下雨之后能接多少雨水。 示例 1: 输入:height [0,1,0,2,1,0,1,3,2,1,2,1] 输出:6 解释:上面是由数组 [0,1,0,2,1,0,1,3,2,1,2,1] 表…...
ThinkPHP和PHP的区别
文章目录 ThinkPHP和PHP的区别一、引言二、PHP简介1、第一步1.1、示例代码 三、ThinkPHP简介2、第二步2.1、特点2.2、示例代码 四、总结 ThinkPHP和PHP的区别 一、引言 在Web开发领域,PHP是一种广泛使用的开源脚本语言,而ThinkPHP则是一个基于PHP的MVC…...
clientWidth,offsetWidth,scrollHeight
clientWidth: offsetWidth: scrollHeight:...
SVN版本回退
SVN 版本回退三种方法: Update item to this version 假设我们的项目文件一共有8个版本,它版本号分别是1,2,3,4,5,6,7,8。 这个选项的作用是将文件版本更新到对应所选的…...
微信小程序之bind和catch
这两个呢,都是绑定事件用的,具体使用有些小区别。 官方文档: 事件冒泡处理不同 bind:绑定的事件会向上冒泡,即触发当前组件的事件后,还会继续触发父组件的相同事件。例如,有一个子视图绑定了b…...
技术栈RabbitMq的介绍和使用
目录 1. 什么是消息队列?2. 消息队列的优点3. RabbitMQ 消息队列概述4. RabbitMQ 安装5. Exchange 四种类型5.1 direct 精准匹配5.2 fanout 广播5.3 topic 正则匹配 6. RabbitMQ 队列模式6.1 简单队列模式6.2 工作队列模式6.3 发布/订阅模式6.4 路由模式6.5 主题模式…...
Java + Spring Boot + Mybatis 实现批量插入
在 Java 中使用 Spring Boot 和 MyBatis 实现批量插入可以通过以下步骤完成。这里提供两种常用方法:使用 MyBatis 的 <foreach> 标签和批处理模式(ExecutorType.BATCH)。 方法一:使用 XML 的 <foreach> 标签ÿ…...
mac 安装homebrew (nvm 及git)
mac 安装nvm 及git 万恶之源 mac 安装这些东西离不开Xcode。及homebrew 一、先说安装git步骤 通用: 方法一:使用 Homebrew 安装 Git(推荐) 步骤如下:打开终端(Terminal.app) 1.安装 Homebrew…...
c# 局部函数 定义、功能与示例
C# 局部函数:定义、功能与示例 1. 定义与功能 局部函数(Local Function)是嵌套在另一个方法内部的私有方法,仅在包含它的方法内可见。 • 作用:封装仅用于当前方法的逻辑,避免污染类作用域,提升…...
绕过 Xcode?使用 Appuploader和主流工具实现 iOS 上架自动化
iOS 应用的发布流程一直是开发链路中最“苹果味”的环节:强依赖 Xcode、必须使用 macOS、各种证书和描述文件配置……对很多跨平台开发者来说,这一套流程并不友好。 特别是当你的项目主要在 Windows 或 Linux 下开发(例如 Flutter、React Na…...
前端开发者常用网站
Can I use网站:一个查询网页技术兼容性的网站 一个查询网页技术兼容性的网站Can I use:Can I use... Support tables for HTML5, CSS3, etc (查询浏览器对HTML5的支持情况) 权威网站:MDN JavaScript权威网站:JavaScript | MDN...
Win系统权限提升篇UAC绕过DLL劫持未引号路径可控服务全检项目
应用场景: 1、常规某个机器被钓鱼后门攻击后,我们需要做更高权限操作或权限维持等。 2、内网域中某个机器被钓鱼后门攻击后,我们需要对后续内网域做安全测试。 #Win10&11-BypassUAC自动提权-MSF&UACME 为了远程执行目标的exe或者b…...
运行vue项目报错 errors and 0 warnings potentially fixable with the `--fix` option.
报错 找到package.json文件 找到这个修改成 "lint": "eslint --fix --ext .js,.vue src" 为elsint有配置结尾换行符,最后运行:npm run lint --fix...
使用ch340继电器完成随机断电测试
前言 如图所示是市面上常见的OTA压测继电器,通过ch340串口模块完成对继电器的分路控制,这里我编写了一个脚本方便对4路继电器的控制,可以设置开启时间,关闭时间,复位等功能 软件界面 在设备管理器查看串口号后&…...
