Grokking SQL for Tech Interviews
Ask Author
Back to course home

0% completed

Vote For New Content
7. Rectangle Validation (Easy)
On this page

Problem Statement

Example

Try It YourSelf

Solution

SQL Query

Step by Step Approach

Problem Statement

Table: Rectangle
This table stores the dimensions of rectangles. Each row contains the lengths of four sides of a rectangle.

+---------------+------+
| Column Name   | Type |
+---------------+------+
| a             | int  |
| b             | int  |
| c             | int  |
| d             | int  |
+---------------+------+
(a, b, c, d) is the primary key for this table.
Each row of this table contains the lengths of four sides of a rectangle.

Determine for each set of four line segments whether they can form a rectangle. A set of line segments can form a rectangle if opposite sides are equal.

Return the result table in any order.

Example

Input:

Rectangle table: +----+----+----+----+ | a | b | c | d | +----+----+----+----+ | 15 | 10 | 15 | 10 | | 15 | 10 | 15 | 20 | +----+----+----+----+

Output:

+----+----+----+----+-----------+ | a | b | c | d | rectangle | +----+----+----+----+-----------+ | 15 | 10 | 15 | 10 | Yes | | 15 | 10 | 15 | 20 | No | +----+----+----+----+-----------+

In this example, the first set of sides (15, 10, 15, 10) can form a rectangle because the opposite sides are equal. The second set of sides (15, 10, 15, 20) cannot form a rectangle because not all opposite sides are equal.

Try It YourSelf

MYSQL
MYSQL

. . . .

Solution

To solve this problem, we need to check each row in the Rectangle table to determine if the given sides can form a rectangle based on the condition that opposite sides must be equal.

  1. Check Opposite Sides: Verify if sides (a, c) and (b, d) are equal for each row.
  2. Return Result: Based on the equality of opposite sides, return 'Yes' if the sides can form a rectangle, otherwise return 'No'.

SQL Query

SELECT a, b, c, d, CASE WHEN a = c AND b = d THEN 'Yes' ELSE 'No' END as rectangle FROM Rectangle;

Step by Step Approach

Step 1: Check Opposite Sides

Check if opposite sides are equal for each row in the table.

SELECT a, b, c, d, (a = c AND b = d) as is_rectangle FROM Rectangle

Output After Step 1:

+----+----+----+----+--------------+ | a | b | c | d | is_rectangle | +----+----+----+----+--------------+ | 15 | 10 | 15 | 10 | 1 | | 15 | 10 | 15 | 20 | 0 | +----+----+----+----+--------------+

Step 2: Return Result

Based on the equality check, return 'Yes' if the sides can form a rectangle, otherwise return 'No'.

SELECT a, b, c, d, CASE WHEN a = c AND b = d THEN 'Yes' ELSE 'No' END as rectangle FROM Rectangle

Final Output:

+----+----+----+----+-----------+ | a | b | c | d | rectangle | +----+----+----+----+-----------+ | 15 | 10 | 15 | 10 | Yes | | 15 | 10 | 15 | 20 | No | +----+----+----+----+-----------+

.....

.....

.....

Like the course? Get enrolled and start learning!

On this page

Problem Statement

Example

Try It YourSelf

Solution

SQL Query

Step by Step Approach