每日刷力扣SQL题(五)

news/2024/9/18 14:52:27/ 标签: leetcode, 算法, 职场和发展

1164.指定日期的产品价格

        一、方法:使用left join 和 ifnull
       
 思路

        本题的关键点在找到 2019-08-16 前所有有改动的产品及其最新价格和没有没有修改过价格的产品。 我们可以先找到所有的产品,再找到所有 2019-08-16 前有修改的产品和他们最新的价格,使用 left join 将两个查询联合。如果产品没有价格,说明没有修改过,设置为 10,如果有价格,设置为最新的价格

找出所有的产品

找到 2019-08-16 前所有有改动的产品的最新价格。

上面两步已经找到了所有的产品和已经修改过价格的产品。使用 left join 得到所有产品的最新价格,如果没有设置为 10

select p1.product_id , ifNULL(p2.new_price,10) as price
from
(select distinct product_id from Products)
as p1
left join 
( select product_id ,new_price
from Products
where  (product_id , change_date) in  
(select product_id, max(change_date) as change_date From Products where change_date <='2019-08-16' group by product_id )
group by product_id ) as p2 on p1.product_id = p2.product_id

二、方法:使用UNION关键字 合并多个查询集的结果

-- Subquery 1: Get the latest product_id and change_date on or before '2019-08-16'
SELECT product_id, new_price as price
FROM Products
WHERE (product_id, change_date) in (SELECT product_id, max(change_date) as change_date
FROM Products
WHERE change_date <= '2019-08-16'
GROUP BY product_id)UNION ALL-- Subquery 2: Get product_id where the earliest change_date is after '2019-08-16' with a fixed price of 10
SELECT product_id, 10 as price
FROM Products
GROUP BY product_id
HAVING MIN(change_date)> '2019-08-16';

1204.最后一个能进巴士的人

 思路:按照turn排序的,按照weight进行累加,按照累加的大小进行倒序排序,通过limit 1 选取最后一位上车的人

# Write your MySQL query statement below
select person_name 
from
(select person_name,
sum(weight) over(order by turn) as current_weight 
from Queue) as a 
where  current_weight <=1000
order by current_weight desc
limit 1 

1907.按分类统计薪水

使用UNION关键字联合查询

-- select category,count(*) as accounts_count 
-- from
-- (select * ,
--     CASE 
--         WHEN income < 20000 then 'Low Salary'
--         WHEN income >= 20000 and income <= 50000 then 'Average Salary'
--         WHEN income > 50000 then 'High Salary'
--     END as category
-- from Accounts ) as a
-- group by category
select 'Low Salary' as category , count(*) as accounts_count from Accounts
where income < 20000
union
select 'Average Salary' as category , count(*) as accounts_count from Accounts
where income >= 20000 and income <= 50000
union 
select 'High Salary' as category , count(*) as accounts_count from Accounts
where income > 50000

其中联合查询语句 可以用CASEWHEN来实现

以下为‘Low Salary’为例子

SELECT 'Low Salary' AS category,SUM(CASE WHEN income < 20000 THEN 1 ELSE 0 END) AS accounts_count
FROM Accounts

 


http://www.ppmy.cn/news/1516755.html

相关文章

Vue3 pinia

1.简介 集中式状态&#xff08;数据&#xff09;管理 和vueX一样 2.安装pinia npm i pinia //引入 createApp用于创建应用 import {createApp} from vue; //引入 App 根组件 import App from ./App.vue;//引入pinia import {createPinia} from pinia;//创建一个应用 const…

PyTorch构建模型网络结构的6种方式

PyTorch提供了多种方式来构建模型的网络结构&#xff0c;我尝试总结一下&#xff0c;有如下6种常见方式&#xff08;可能还有我没注意到的&#xff0c;欢迎补充&#xff09;。我们平时写代码并不一定需要掌握全部方式&#xff0c;但是多了解一些&#xff0c;对于阅读理解别人的…

服务器主动推送的方法

目录 1.长轮询&#xff08;Long Polling&#xff09;2.WebSockets3.Server-Sent Events&#xff08;SSE&#xff09;4.HTTP2 Server Push 服务器如何主动推送数据 在传统的网络通信中&#xff0c;客户端&#xff08;如浏览器&#xff09;通常需要通过向服务器发起请求来获取数据…

快速判断一个项目是Spring MVC框架还是Spring Boot框架

1. 查看项目的启动类 Spring Boot: 通常有一个主类&#xff0c;包含 SpringBootApplication 注解&#xff0c;并且有一个 main 方法来启动应用程序。 SpringBootApplication public class Application {public static void main(String[] args) {SpringApplication.run(Appli…

作业训练三编程题13. 导弹防御系统

【问题描述】 某国为了防御敌国的导弹袭击&#xff0c;开发出一种导弹拦截系统。但是这种导弹拦截系统有一个缺陷&#xff1a;虽然它的第一发炮弹能够到达任意的高度&#xff0c;但是以后每一发炮弹都不能高于前一发的高度。某天&#xff0c;雷达捕捉到敌国的导弹来袭&#xf…

python脚本请求数量达到上限,http请求重试问题例子解析

在使用Python的requests库进行HTTP请求时&#xff0c;可能会遇到请求数量达到上限&#xff0c;导致Max retries exceeded with URL的错误。这通常发生在网络连接不稳定、服务器限制请求次数、或请求参数设置错误的情况下。以下是一些解决该问题的策略&#xff1a; 增加重试次数…

并发服务器开发基础

一、服务器模型 1. 单循环服务器&#xff1a; 单循环服务器在同一时刻只能处理一个客户端的请求。由于其结构简单&#xff0c;适合低负载的场景&#xff0c;但在并发请求增加时可能导致性能问题。 2. 并发服务器模型&#xff1a; 并发服务器可以同时响应多个客户端…

本地环境注入jupyter:无法在jupyter选择已经创建的conda环境?快来看下解决办法(jupyter notebook选择已创建环境)

1、WinR打开本机cmd命令行 2、运行 conda activate 本地已创建的环境名称 3、运行 conda install ipykernel 4、运行 python -m ipykernel install --user --name 本地环境名称 --display-name "在jupyter上显示的环境名称" 就可以在jupyter notebook中看到环…

谷粒商城实战笔记-250-商城业务-消息队列-RabbitMQ安装-Docker

一&#xff0c;docker安装RabbitMq RabbitMQ 是一个开源的消息代理软件&#xff0c;广泛用于实现异步通信和应用程序解耦。 使用 Docker 容器化技术可以简化 RabbitMQ 的安装和部署过程。 以下是使用 Docker 安装 RabbitMQ 的详细步骤。 步骤 1: 安装 Docker 如果您的系统…

如何解决:Failed to start jenkins.service: Unit not found.

当在 CentOS 上尝试启动 Jenkins 服务时&#xff0c;出现 Failed to start jenkins.service: Unit not found 的错误&#xff0c;这通常表示 Jenkins 服务未安装或未正确配置。请按照以下步骤进行排查和解决&#xff1a; 解决步骤 检查 Jenkins 是否已安装&#xff1a; 确认 J…

如何使用ssm实现旅游网站的设计与实现

TOC ssm150旅游网站的设计与实现jsp 绪论 1.1 研究背景 当前社会各行业领域竞争压力非常大&#xff0c;随着当前时代的信息化&#xff0c;科学化发展&#xff0c;让社会各行业领域都争相使用新的信息技术&#xff0c;对行业内的各种相关数据进行科学化&#xff0c;规范化管…

ComfyUI 常用的节点

总的来说&#xff0c;如果可以的话 最佳实践是直接访问每个节点仓库&#xff0c;仔细阅读作者提供的文档和说明。然后&#xff0c;手动执行 git clone 来获取仓库的代码。 接着&#xff0c;你可以通过手动执行 pip install -r requirements.txt 来安装每个项目的依赖。这种方法…

【Linux】第十八章 Reactor模式

文章目录 Reactor模式epoll ET服务器&#xff08;Reactor模式&#xff09;设计思路Epoller.hppSock.hppProtocol.hppService.hppTcpServer.hpp-重点Connection类TcpServer类服务器框架TcpServer构造AddConnection函数SetNonBlock 函数Accepter函数IsExists函数TcpRecver函数Tcp…

[oeasy]python031_[趣味拓展]unix起源_Ken_Tompson_Ritchie_multics

[趣味拓展]unix起源_Ken_Tompson_Ritchie_multics &#x1f94b; 回忆上次内容 上次 动态设置了 断点 断点 可以把代码 切成一段一段的可以 更快地调试 调试的目的 是 去除 bug 别害怕 bug 一步步 总能找到 bug这 就是 程序员基本功 调试 debug 在bug出现的时候 甚至…

docker-harbor私有仓库部署和管理

harbor&#xff1a;开源的企业级的docker仓库软件 仓库&#xff1a;私有仓库 公有仓库 &#xff08;公司内部一般都是私有仓库&#xff09; habor 是有图形化的&#xff0c;页面UI展示的一个工具&#xff0c;操作起来很直观。 harbor每个组件都是由容器构建的&#xff0c;所…

高效的数据恢复软件介绍给大家!

数据丢失可太烦人了&#xff0c;在工作中我们经常会遇到数据丢失的情况&#xff0c;那么你知道数据丢失怎么找回来吗&#xff1f;当然找的回来啦&#xff01;需要用上高效且有用的数据恢复工具。那么&#xff0c;今天就要给大家介绍两个好用的数据恢复工具&#xff0c;可以将您…

5个常见问答 | 1+X证书《大数据应用开发(Python)》

1、 1X大数据应用开发&#xff08;Python&#xff09;哪些人群可以考&#xff1f; 全日制在读的中高职学校、应用型本科、本科层次职业教育试点学校院校的学生&#xff0c;有意向从事与证书相关岗位的社会人士都可考取该证书。 2、1X大数据应用开发&#xff08;Python&am…

网络udp及ipc内存共享

大字符串找小字符串 调试 1. 信号处理函数注册&#xff1a;•一旦使用 signal 函数注册了信号处理函数&#xff0c;该函数就会一直有效&#xff0c;直到程序结束或者显式地取消注册。2. 注册多次的影响&#xff1a;•如果多次注册同一信号的处理函数&#xff0c;最后一次注册的…

【手写数据库内核组件】0303 数据缓存池(二) 缓存块使用前需要固定,缓存加载与无效,无锁的替换算法

0303 数据缓存池(二) ​专栏内容: postgresql使用入门基础手写数据库toadb并发编程个人主页:我的主页 管理社区:开源数据库 座右铭:天行健,君子以自强不息;地势坤,君子以厚德载物. 文章目录 0303 数据缓存池(二)一、概述 二、缓存块操作原理 2.1 缓存块的读写访问 2.2 无…

C学习(数据结构)-->实现链式结构二叉树

目录 一、链式二叉树结构 二、实现 1、申请新结点 2、前、中、后序遍历 1&#xff09;前序遍历 例&#xff1a; 2&#xff09;中序遍历 3&#xff09;后序遍历 3、结点个数 1&#xff09;二叉树结点个数 例&#xff1a;​编辑 2&#xff09;二叉树叶子结点个数 3&…