Grokking SQL for Tech Interviews
Ask Author
Back to course home

0% completed

Vote For New Content
7. Rectangle Validation (Easy)
Table of Contents

Contents are not accessible

Contents are not accessible

Contents are not accessible

Contents are not accessible

Contents are not accessible

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!

Table of Contents

Contents are not accessible

Contents are not accessible

Contents are not accessible

Contents are not accessible

Contents are not accessible