[LeetCode] 595. Big Countries

此篇博客介绍如何使用SQL查询从World表中筛选出人口超过2500万或面积大于300万平方公里的大国,包括名称、人口和面积数据。解决方案展示了如何在MySQL中快速高效地筛选出这些关键信息。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

A country is big if it has an area of bigger than 3 million square km or a population of more than 25 million.

Write a SQL solution to output big countries' name, population and area.

There is a table World

+-----------------+------------+------------+--------------+---------------+
| name            | continent  | area       | population   | gdp           |
+-----------------+------------+------------+--------------+---------------+
| Afghanistan     | Asia       | 652230     | 25500100     | 20343000      |
| Albania         | Europe     | 28748      | 2831741      | 12960000      |
| Algeria         | Africa     | 2381741    | 37100000     | 188681000     |
| Andorra         | Europe     | 468        | 78115        | 3712000       |
| Angola          | Africa     | 1246700    | 20609294     | 100990000     |
+-----------------+------------+------------+--------------+---------------+

For example, according to the above table, we should output:

+--------------+-------------+--------------+
| name         | population  | area         |
+--------------+-------------+--------------+
| Afghanistan  | 25500100    | 652230       |
| Algeria      | 37100000    | 2381741      |
+--------------+-------------+--------------+

Solution:

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

Runtime: 285 ms, faster than 57.57% of MySQL online submissions for Big Countries.

Memory Usage: 0B, less than 100.00% of MySQL online submissions for Big Countries.

### LeetCode SQL 题目推荐刷题顺序 对于初学者到高级学习者的SQL技能提升,建议按照由易至难的原则逐步深入练习。以下是精心挑选并整理的一系列LeetCode上的SQL题目,旨在帮助用户循序渐进地掌握SQL查询技巧。 #### 基础阶段 此阶段主要目的是熟悉基本语法结构以及常用函数的应用。 - **175. Combine Two Tables** 掌握如何通过`JOIN`操作来组合多个表的数据[^1]。 - **182. Duplicate Emails** 学习识别重复记录的方法,并理解子查询的作用。 - **196. Delete Duplicate Email Addresses** 练习使用DELETE语句删除不需要的数据行。 #### 进阶阶段 随着难度增加,开始接触更复杂的逻辑判断与多条件筛选。 - **176. Second Highest Salary** 实现获取特定排名数据的功能,比如本例中的第二高薪水问题。 - **183. Customers Who Never Order** 利用外连接(OUTER JOIN)找出那些从未下单过的客户信息。 - **595. Big Countries** 结合WHERE子句和聚合函数完成对大规模国家列表的有效过滤。 #### 高级阶段 挑战更高层次的任务,涉及窗口函数(Window Function),CTE(Common Table Expression)等高级特性。 - **1070. Product Sales Analysis I~III** 应用多种分析工具解决销售数据分析场景下的复杂需求。 - **184. Department Highest Salary** 使用窗口函数计算部门内部员工薪资分布情况,找到各部门最高薪者。 - **1581. Customer Who Visited but Did Not Make Any Transactions** 尝试构建公共表达式简化嵌套查询过程,提高代码可读性和执行效率。 为了更好地巩固所学知识点,鼓励读者每做完一道题后都仔细阅读官方解答和其他优秀选手分享的经验贴,从中汲取灵感不断完善自己的思维方式和技术水平。 ```sql -- 获取第二高的工资示例 SELECT MAX(Salary) AS SecondHighestSalary FROM Employee WHERE Salary != (SELECT MAX(Salary) FROM Employee); ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值