DEV Community

Cover image for SQL 50–595. Big Countries
Ben Pereira
Ben Pereira

Posted on

SQL 50–595. Big Countries

It’s an easy problem with description being:

Table: World

+-------------+---------+
| Column Name | Type    |
+-------------+---------+
| name        | varchar |
| continent   | varchar |
| area        | int     |
| population  | int     |
| gdp         | bigint  |
+-------------+---------+
name is the primary key (column with unique values) 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 a solution to find the name, population, and area of the big countries.

Return the result table in any order.

The result format is in the following example.

Example 1:

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

Enter fullscreen mode Exit fullscreen mode

Here the request is name, population and area so those three columns needs to be in the select and the conditions (one or another) are stated which is:

  • Area of at least three million square kilometers
  • Population of at least twenty-five million

The query goes as simple as the problem expects to be, just don't forget the words as it states "at least" meaning that the numbers are included as well, not excluded.
The SQL query solution would be:

SELECT name, population, area 
  FROM World 
 WHERE area >= 3000000 OR population >= 25000000;
Enter fullscreen mode Exit fullscreen mode

Runtime: 530 ms, faster than 63.52% of MySQL online submissions for Big Countries.
Memory Usage: 0B, less than 100.00% of MySQL online submissions for Big Countries.

-
That's it!

If there is anything thing else to discuss feel free to drop a comment, if I missed anything let me know so I can update accordingly.

Until next post! :)

Top comments (0)