• LeetCode-高频 SQL 50 题:查询 篇


    目录

    1757. 可回收且低脂的产品

    题目描述:

    SQL语句:

    584. 寻找用户推荐人

    题目描述:

    SQL语句:

    595. 大的国家

    题目描述:

    SQL语句:

    1148. 文章浏览 I

    题目描述:

    SQL语句:

    1683. 无效的推文

    题目描述:

    SQL语句:


    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语句:

    1. # Write your MySQL query statement below
    2. SELECT
    3. product_id
    4. FROM
    5. Products
    6. WHERE
    7. low_fats = 'Y' AND recyclable = 'Y'
    8. ;

    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语句:

    1. # Write your MySQL query statement below
    2. SELECT
    3. name
    4. FROM
    5. Customer
    6. WHERE
    7. referee_id <> 2 OR referee_id IS NULL
    8. ;

    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语句:

    1. # Write your MySQL query statement below
    2. SELECT
    3. name,
    4. population,
    5. area
    6. FROM
    7. World
    8. WHERE
    9. area >= 3000000
    10. OR population >= 25000000
    11. ;

    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语句:

    1. # Write your MySQL query statement below
    2. SELECT
    3. DISTINCT author_id AS id
    4. FROM
    5. Views
    6. WHERE
    7. author_id = viewer_id
    8. ORDER BY
    9. id
    10. ;

    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语句:

    1. # Write your MySQL query statement below
    2. SELECT
    3. DISTINCT author_id AS id
    4. FROM
    5. Views
    6. WHERE
    7. author_id = viewer_id
    8. ORDER BY
    9. id
    10. ;
  • 相关阅读:
    Meta开源数字水印Stable Signature,极大增强生成式AI安全
    【框架源码篇 01】Spring源码-手写IOC
    深度学习篇之tensorflow(3) ---架构介绍篇一
    交换机堆叠 配置(H3C)堆叠中一台故障如何替换
    云原生异常检测
    带头双向循环链表
    SpringBoot+Vue实现前后端分离的财务管理系统
    mybatis注解开发
    后端分页应该注意的事项
    怎么给字符串新增方法?
  • 原文地址:https://blog.csdn.net/Cosmoshhhyyy/article/details/133819850