当前位置: 首页 > news >正文

【MySQL】LeeCode高频SQL50题基础版刷题记录(持续更新)

1.可回收且低脂的产品(条件查询)

题目描述

表:Products

Column NameType
product_idint
low_fatsenum
recyclableenum

product_id 是该表的主键(具有唯一值的列)。
low_fats 是枚举类型,取值为以下两种 (‘Y’, ‘N’),其中 ‘Y’ 表示该产品是低脂产品,‘N’ 表示不是低脂产品。
recyclable 是枚举类型,取值为以下两种 (‘Y’, ‘N’),其中 ‘Y’ 表示该产品可回收,而 ‘N’ 表示不可回收。

编写解决方案找出既是低脂又是可回收的产品编号。
返回结果 无顺序要求 。

返回结果格式如下例所示:
示例 1:

输入:
Products 表:

product_idlow_fatsrecyclable
0YN
1YY
2NY
3YY
4NN

输出:

product_id
1
3

解释:
只有产品 id 为 1 和 3 的产品,既是低脂又是可回收的产品。

求解

1. MySQL

SELECT PRODUCT_ID
FROM PRODUCTS
WHERE LOW_FATS="Y" AND RECYCLABLE="Y"

输出得到:

PRODUCT_ID
1
3

【涉及语法】基础多条件查询,学习指路–>【MySQL】SQL基础语法+运行原理

2.Python

import pandas as pddef find_products(products):df = products[(products['low_fats'] == 'Y') & (products['recyclable'] == 'Y')]df = df[['product_id']]return df

输出得到:

PRODUCT_ID
1
3

2.寻找用户推荐人(条件查询)

题目描述

表: Customer

Column NameType
idint
namevarchar
referee_idint

在 SQL 中,id 是该表的主键列。
该表的每一行表示一个客户的 id、姓名以及推荐他们的客户的 id。
找出那些 没有被 id = 2 的客户 推荐 的客户的姓名。

以 任意顺序 返回结果表。
结果格式如下所示。

示例 1:
输入:
Customer 表:

idnamereferee_id
1Willnull
2Janenull
3Alex2
4Billnull
5Zack1
6Mark2

输出:

name
Will
Jane
Bill
Zack

求解

1. MySQL

SELECT name
FROM Customer
WHERE referee_id != 2 OR referee_id IS NULL

输出得到:

name
Will
Jane
Bill
Zack

【涉及语法】基础多条件查询,学习指路–>【MySQL】SQL基础语法+运行原理

2.Python

import pandas as pddef find_customer_referee(customer: pd.DataFrame) -> pd.DataFrame:df = customer[(customer['referee_id'] != 2) | (customer['referee_id'].isnull())]df = df[['name']]return df

输出得到:

name
Will
Jane
Bill
Zack

3.找出 大国 的国家名称、人口和面积(条件查询)

题目描述

World 表:

Column NameType
namevarchar
continentvarchar
areaint
populationint
gdpbigint

name 是该表的主键(具有唯一值的列)。
这张表的每一行提供:国家名称、所属大陆、面积、人口和 GDP 值。
如果一个国家满足下述两个条件之一,则认为该国是 大国 :
面积至少为 300 万平方公里(即,3000000 km2),或者
人口至少为 2500 万(即 25000000)

编写解决方案找出 大国 的国家名称、人口和面积。

按 任意顺序 返回结果表。

返回结果格式如下例所示。
示例:

输入:
World 表:

namecontinentareapopulationgdp
AfghanistanAsia6522302550010020343000000
AlbaniaEurope28748283174112960000000
AlgeriaAfrica238174137100000188681000000
AndorraEurope468781153712000000
AngolaAfrica124670020609294100990000000

输出:

namepopulationarea
Afghanistan25500100652230
Algeria371000002381741

求解

1. MySQL

SELECT NAME, POPULATION, AREA
FROM WORLD
WHERE AREA >= 3000000 OR POPULATION >= 25000000

输出得到:

namepopulationarea
Afghanistan25500100652230
Algeria371000002381741

【涉及语法】基础多条件查询,学习指路–>【MySQL】SQL基础语法+运行原理

2.Python

import pandas as pddef big_countries(world: pd.DataFrame) -> pd.DataFrame:df = world[(world['area'] >= 3000000) | (world['population'] >= 25000000)]df = df[['name', 'population', 'area']]return df

输出得到:

namepopulationarea
Afghanistan25500100652230
Algeria371000002381741

4.文章浏览(条件查询/去重/排序)

题目描述

Views 表:

Column NameType
article_idint
author_idint
viewer_idint
view_datedate

此表可能会存在重复行。(换句话说,在 SQL 中这个表没有主键)
此表的每一行都表示某人在某天浏览了某位作者的某篇文章。
请注意,同一人的 author_id 和 viewer_id 是相同的。

请查询出所有浏览过自己文章的作者
结果按照 id 升序排列。

查询结果的格式如下所示:

示例 1:
输入:
Views 表:

article_idauthor_idviewer_idview_date
1352019-08-01
1362019-08-02
2772019-08-01
2762019-08-02
4712019-07-22
3442019-07-21
3442019-07-21

输出:

id
4
7

求解

1. MySQL

SELECT DISTINCT AUTHOR_ID AS id
FROM VIEWS
WHERE VIEWER_ID = AUTHOR_ID
ORDER BY id

输出得到:

id
4
7

【涉及语法】基础多条件查询,学习指路–>【MySQL】SQL基础语法+运行原理

2.Python

import pandas as pddef article_views(views: pd.DataFrame) -> pd.DataFrame:df = views[views['author_id'] == views['viewer_id']]df.drop_duplicates(subset = ['author_id'], inplace = True)df.sort_values(by=['author_id'], inplace = True)df.rename(columns = {'author_id' : 'id'}, inplace = True)df = df[['id']]return df

输出得到:

id
4
7

备注:
在 Pandas 中,inplace=True 是一个常见的参数,用于指示操作是否应该直接修改原始数据,而不是返回一个修改后的副本。

  • inplace=True:操作会直接修改调用该方法的对象(例如,DataFrame 或 Series),而不会返回一个新的 DataFrame 或 Series。换句话说,数据会在原地(in place)被修改。
  • inplace=False(默认值):操作会返回一个修改后的副本,不会改变原始数据。这是大多数 Pandas 函数的默认行为。

http://www.mrgr.cn/news/59754.html

相关文章:

  • 基于neo4j的旅游知识图谱维护与问答系统
  • 爬虫——scrapy的基本使用
  • Spring Boot面试题
  • 流媒体协议.之(RTP,RTCP,RTSP,RTMP,HTTP)(二)
  • 当有违法数据时,浏览器不解析,返回了undefined,导致数据不解析
  • Promise、async、await 、异步生成器的错误处理方案
  • 实验干货|电流型霍尔传感器采样设计03-信号调理
  • BGP 12 条选路原则笔记
  • mysql 视图中用变量实现 自增序号
  • Nature 正刊丨利福昔明预防引起对最后一种抗生素达托霉素的耐药性
  • 如何创建一个Vue项目【手把手教会你】
  • 猫头虎 分享:MySQL 中 TEXT 与 LONGTEXT 数据类型详解与使用场景分析
  • C++标准库之std::begin、std::end、std::pre和std::next
  • Maven 项目构建打包,如何引入本地 Jar 包?
  • 【Rust练习】18.特征 Trait
  • 人工智能与深度学习入门
  • 【K8S系列】Kubernetes 中 Service IP 地址和端口不匹配问题及解决方案【已解决】
  • Maven:详解 clean 和 install 命令的使用
  • promise+async/await+任务队列
  • 同步电机不同电流参考方向下的功率计算
  • Python毕业设计选题:基于Python的个性化旅游路线推荐系统-flask+vue
  • 位运算技巧
  • 玩转springboot之springboot属性绑定原理
  • 【C++奇遇记】C++中的基础知识(缺省参数,函数重载,引用)
  • 二进制搭建 Kubernetes v1.20
  • Kubernetes实战——DevOps集成SpringBoot项目