595. Big Countries
Problem Description
Table: World
+-------------+---------+
| Column Name | Type |
+-------------+---------+
| name | varchar |
| continent | varchar |
| area | int |
| population | int |
| gdp | bigint |
+-------------+---------+
name is the primary key column for this table.
Each row of this table gives information about the name of a country, the continent to which it belongs, its area, the population, and its GDP value.
A country is big if:
- it has an area of at least three million (i.e.,
3000000 km2), or - it has a population of at least twenty-five million (i.e.,
25000000).
Write an SQL query to report the name, population, and area of the big countries.
Return the result table in any order.
Example:
Input:
World table:
+-------------+-----------+---------+------------+--------------+
| 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 |
+-------------+-----------+---------+------------+--------------+
Output:
+-------------+------------+---------+
| name | population | area |
+-------------+------------+---------+
| Afghanistan | 25500100 | 652230 |
| Algeria | 37100000 | 2381741 |
+-------------+------------+---------+
Solution
MySQL Solution
SELECT name, population, area
FROM World
WHERE area >= 3000000 OR population >= 25000000;
PostgreSQL Solution
SELECT name, population, area
FROM World
WHERE area >= 3000000 OR population >= 25000000;
MS SQL Server Solution
SELECT name, population, area
FROM World
WHERE area >= 3000000 OR population >= 25000000;
Oracle Solution
SELECT name, population, area
FROM World
WHERE area >= 3000000 OR population >= 25000000;
Approach Explanation
The solution uses a straightforward SQL query with OR conditions:
- Key Insights:
- Simple filtering
- OR condition
- Column selection
- No sorting required
- Query Steps:
- Select required columns
- Filter by area or population
- No need for joins
- No need for grouping
Implementation Details:
- Simple SELECT statement
- WHERE clause with OR
- Direct comparison
- No complex functions
Optimization Insights:
- No sorting overhead
- Simple filtering
- No temporary tables
- No subqueries needed
Edge Cases:
- Empty table
- NULL values
- Exact threshold values
- Large numbers