高频SQL50题(基础版)

简介: 高频SQL50题(基础版)

1757.可回收且低脂的产品(简单)

表:Products

+-------------+---------+

| Column Name | Type    |

+-------------+---------+

| product_id  | int     |

| low_fats    | enum    |

| recyclable  | enum    |

+-------------+---------+

product_id

是该表的主键(具有唯一值的列)。

low_fats 是枚举类型,取值为以下两种 ('Y', 'N'),其中 'Y' 表示该产品是低脂产品,'N' 表示不是低脂产品。

recyclable 是枚举类型,取值为以下两种 ('Y', 'N'),其中 'Y' 表示该产品可回收,而 'N' 表示不可回收。

编写解决方案找出既是低脂又是可回收的产品编号。

返回结果 无顺序要求

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

示例 1:

输入:

Products 表:

+-------------+----------+------------+

| product_id  | low_fats | recyclable |

+-------------+----------+------------+

| 0           | Y        | N          |

| 1           | Y        | Y          |

| 2           | N        | Y          |

| 3           | Y        | Y          |

| 4           | N        | N          |

+-------------+----------+------------+

输出:

+-------------+

| product_id  |

+-------------+

| 1                |

| 3                |

+-------------+

解释:

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

SQL代码如下:

select product_id from Products where low_fats = 'Y' and recyclable = 'Y';

584.寻找用户推荐人(简单)

表: Customer

+-------------+---------+

| Column Name | Type    |

+------------ -+---------+

| id          | int                |

| name        | varchar      |

| referee_id  | int            |

+-------------+---------+

在 SQL 中,id 是该表的主键列。

该表的每一行表示一个客户的 id、姓名以及推荐他们的客户的 id。

找出那些 没有被 id = 2 的客户 推荐 的客户的姓名。

任意顺序 返回结果表。

结果格式如下所示。

示例 1:

输入:

Customer 表:

+----+------+------------+

| id | name | referee_id |

+----+------+------------+

| 1  | Will | null       |

| 2  | Jane | null       |

| 3  | Alex | 2          |

| 4  | Bill | null       |

| 5  | Zack | 1          |

| 6  | Mark | 2          |

+----+------+------------+

输出:

+------+

| name |

+------+

| Will |

| Jane |

| Bill |

| Zack |

+------+

SQL代码如下:

select name from Customer where referee_id != 2 or referee_id is null;

595.大的国家(简单)

World 表:

+-------------+---------+

| Column Name | Type    |

+-------------+---------+

| name        | varchar |

| continent   | varchar |

| area        | int     |

| population  | int     |

| gdp         | bigint  |

+-------------+---------+

name

是该表的主键(具有唯一值的列)。

这张表的每一行提供:国家名称、所属大陆、面积、人口和 GDP 值。


如果一个国家满足下述两个条件之一,则认为该国是 大国

  • 面积至少为 300 万平方公里(即,3000000 km2),或者
  • 人口至少为 2500 万(即 25000000

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

任意顺序 返回结果表。

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

示例:

输入:

World 表:

+-------------+-----------+---------+------------+--------------+

| name        | continent | area    | population | gdp          |

+-------------+-----------+---------+------------+--------------+

| Afghanistan | Asia      | 652230  | 25500100   | 20343000000  |

| Albania     | Europe    | 28748   | 2831741    | 12960000000  |

| Algeria     | Africa    | 2381741 | 37100000   | 188681000000 |

| Andorra     | Europe    | 468     | 78115      | 3712000000   |

| Angola      | Africa    | 1246700 | 20609294   | 100990000000 |

+-------------+-----------+---------+------------+--------------+

输出:

+-------------+------------+---------+

| name        | population | area    |

+-------------+------------+---------+

| Afghanistan | 25500100   | 652230  |

| Algeria     | 37100000   | 2381741 |

+-------------+------------+---------+

SQL代码如下:

select name,population,area from World 
where area >= 3000000 or population >=25000000

1148.文章浏览I(简单)

Views 表:

+---------------+---------+

| Column Name   | Type    |

+---------------+---------+

| article_id    | int     |

| author_id     | int     |

| viewer_id     | int     |

| view_date     | date    |

+---------------+---------+

此表可能会存在重复行。(换句话说,在 SQL 中这个表没有主键)

此表的每一行都表示某人在某天浏览了某位作者的某篇文章。

请注意,同一人的 author_id 和 viewer_id 是相同的。


请查询出所有浏览过自己文章的作者

结果按照 id 升序排列。

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

示例 1:

输入:

Views 表:

+------------+-----------+-----------+------------+

| article_id | author_id | viewer_id | view_date  |

+------------+-----------+-----------+------------+

| 1          | 3         | 5         | 2019-08-01 |

| 1          | 3         | 6         | 2019-08-02 |

| 2          | 7         | 7         | 2019-08-01 |

| 2          | 7         | 6         | 2019-08-02 |

| 4          | 7         | 1         | 2019-07-22 |

| 3          | 4         | 4         | 2019-07-21 |

| 3          | 4         | 4         | 2019-07-21 |

+------------+-----------+-----------+------------+

输出:

+------+

| id   |

+------+

| 4    |

| 7    |

+------+

SQL代码如下:

select distinct t1. author_id as id from Views as t1 
where t1.author_id = t1.viewer_id
order by id 

1683.无效的推文(简单)

表:Tweets

+----------------+---------+

| Column Name    | Type    |

+----------------+---------+

| tweet_id       | int     |

| content        | varchar |

+----------------+---------+

在 SQL 中,tweet_id 是这个表的主键。

这个表包含某社交媒体 App 中所有的推文。

查询所有无效推文的编号(ID)。当推文内容中的字符数严格大于 15 时,该推文是无效的。

任意顺序返回结果表。

查询结果格式如下所示:

示例 1:

输入:

Tweets 表:

+----------+----------------------------------+

| tweet_id | content                          |

+----------+----------------------------------+

| 1        | Vote for Biden                   |

| 2        | Let us make America great again! |

+----------+----------------------------------+

输出:

+----------+

| tweet_id |

+----------+

| 2        |

+----------+

解释:

推文 1 的长度 length = 14。该推文是有效的。

推文 2 的长度 length = 32。该推文是无效的。

SQL代码如下:

select tweet_id from Tweets
where char_length(content) > 15

接下来的一段时间,我将会持续更新力扣推出的高频SQL50题(基础版)的内容,感兴趣的小伙伴可以持续关注我

相关文章
|
2月前
|
SQL 数据库 ice
高频SQL50题(基础版)三
高频SQL50题(基础版)三
|
2月前
|
SQL
高频SQL50题(基础版)二
高频SQL50题(基础版)二
|
SQL
国际站 SQL Server 发布 标准单机基础版
信息摘要: 国际站 SQL Server 发布 标准单机基础版,提供更高性价比的SQL Server 实例适用客户: 使用SQL Server 的用户,适用于中小企业管理软件,如财务管理、进销存管理、ERP、CRM等系统。
850 0
|
SQL Web App开发 数据库
|
3月前
|
关系型数据库 MySQL 网络安全
5-10Can't connect to MySQL server on 'sh-cynosl-grp-fcs50xoa.sql.tencentcdb.com' (110)")
5-10Can't connect to MySQL server on 'sh-cynosl-grp-fcs50xoa.sql.tencentcdb.com' (110)")
|
5月前
|
SQL 存储 监控
SQL Server的并行实施如何优化?
【7月更文挑战第23天】SQL Server的并行实施如何优化?
135 13
|
5月前
|
SQL
解锁 SQL Server 2022的时间序列数据功能
【7月更文挑战第14天】要解锁SQL Server 2022的时间序列数据功能,可使用`generate_series`函数生成整数序列,例如:`SELECT value FROM generate_series(1, 10)。此外,`date_bucket`函数能按指定间隔(如周)对日期时间值分组,这些工具结合窗口函数和其他时间日期函数,能高效处理和分析时间序列数据。更多信息请参考官方文档和技术资料。
|
5月前
|
SQL 存储 网络安全
关系数据库SQLserver 安装 SQL Server
【7月更文挑战第26天】
73 6
|
5月前
|
存储 SQL C++
对比 SQL Server中的VARCHAR(max) 与VARCHAR(n) 数据类型
【7月更文挑战7天】SQL Server 中的 VARCHAR(max) vs VARCHAR(n): - VARCHAR(n) 存储最多 n 个字符(1-8000),适合短文本。 - VARCHAR(max) 可存储约 21 亿个字符,适合大量文本。 - VARCHAR(n) 在处理小数据时性能更好,空间固定。 - VARCHAR(max) 对于大文本更合适,但可能影响性能。 - 选择取决于数据长度预期和业务需求。
469 1
|
5月前
|
SQL Oracle 关系型数据库
MySQL、SQL Server和Oracle数据库安装部署教程
数据库的安装部署教程因不同的数据库管理系统(DBMS)而异,以下将以MySQL、SQL Server和Oracle为例,分别概述其安装部署的基本步骤。请注意,由于软件版本和操作系统的不同,具体步骤可能会有所变化。
388 3