力扣595 大的国家 & 596 超过5名学生的课

文章讲述了如何使用SQL查询解决两个问题:一是从World表中找出面积大于300万平方公里或人口超过2500万的大国,二是从Courses表中筛选出至少有5名学生的班级。分别展示了完整的SQL代码和解题思路。
摘要由CSDN通过智能技术生成

        两个力扣简单题,编写解决方案找出 大国 的国家名称、人口和面积。查询 至少有5个学生 的所有班级。两个小SQL

目录

595. 大的国家

题目描述

解题思路

完整代码

596. 超过5名学生的课

题目描述

解题思路

完整代码



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 |
+-------------+------------+---------+

解题思路

  1. World 表中选择国家名称(name)、人口(population)和面积(area)。
  2. 使用 WHERE 子句来筛选那些面积至少为 300 万平方公里(area >= 3000000)或人口至少为 2500 万(population >= 25000000)的国家。

完整代码

SELECT name, population, area
FROM World
WHERE area >= 3000000 OR population >= 25000000;

        这个 SQL 语句首先指定了我们需要从 World 表中选择的列(namepopulationarea)。然后,WHERE 子句确保只有那些面积至少为 300 万平方公里或人口至少为 2500 万的记录才会被包含在结果集中。执行这个查询后,你将得到一个包含所有符合条件的“大国”国家名称、人口和面积的列表。

通过

596. 超过5名学生的课

题目描述

表: Courses

+-------------+---------+
| Column Name | Type    |
+-------------+---------+
| student     | varchar |
| class       | varchar |
+-------------+---------+
在 SQL 中,(student, class)是该表的主键列。
该表的每一行表示学生的名字和他们注册的班级。

查询 至少有5个学生 的所有班级。

以 任意顺序 返回结果表。

查询结果格式如下所示。

示例 1:

输入: 
Courses table:
+---------+----------+
| student | class    |
+---------+----------+
| A       | Math     |
| B       | English  |
| C       | Math     |
| D       | Biology  |
| E       | Math     |
| F       | Computer |
| G       | Math     |
| H       | Math     |
| I       | Math     |
+---------+----------+
输出: 
+---------+ 
| class   | 
+---------+ 
| Math    | 
+---------+
解释: 
-数学课有6个学生,所以我们包括它。
-英语课有1名学生,所以我们不包括它。
-生物课有1名学生,所以我们不包括它。
-计算机课有1个学生,所以我们不包括它。

解题思路

  1. Courses 表中选择班级(class)列。
  2. 使用 GROUP BY 语句按班级分组,这样每个班级只会出现一次,并且我们可以计算每个班级的学生数量。
  3. 使用 COUNT(student) 聚合函数来计算每个班级的学生数量。
  4. 使用 HAVING 子句来筛选出那些学生数量至少为 5 的班级。

完整代码

SELECT class
FROM Courses
GROUP BY class
HAVING COUNT(student) >= 5;

        这个查询首先将 Courses 表中的记录按 class 列进行分组。然后,它计算每个班级的学生数量(使用 COUNT(student))。最后,HAVING 子句确保只有那些学生数量至少为 5 的班级被包括在结果集中。执行这个查询后,你将得到一个列表,其中包含所有至少有 5 名学生的班级

通过

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

昊昊该干饭了

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值