Grokking SQL for Tech Interviews
Ask Author
Back to course home

0% completed

Vote For New Content
3. Triangle Judgement
Table of Contents

Contents are not accessible

Contents are not accessible

Contents are not accessible

Contents are not accessible

Contents are not accessible

Problem

Table: Triangle

+-------------+------+
| Column Name | Type |
+-------------+------+
| x           | int  |
| y           | int  |
| z           | int  |
+-------------+------+
In SQL, (x, y, z) is the primary key column for this table.
Each row of this table contains the lengths of three line segments.

Report for every three line segments whether they can form a triangle.

Return the result table in any order.

Example

Image

Output

Image

Try it YourSelf

MYSQL
MYSQL

. . . .

Solution

To assess the validity of triangles defined by sets of three values (x, y, z), the approach involves employing a SQL query on the 'Triangle' table. The query utilizes a CASE statement to evaluate the conditions of the triangle inequality theorem, determining whether the sum of any two sides is greater than the length of the third side. The result will be a clear classification of each set as either forming a valid ('Yes') or invalid ('No') triangle, providing a straightforward analysis of the geometric properties within the 'Triangle' dataset."

SELECT x, y, z, CASE WHEN x + y > z AND y + z > x AND x + z > y THEN 'Yes' ELSE 'No' end triangle FROM Triangle

Let's break down the SQL query step by step.

Step 1: SELECT Statement

This query selects columns x, y, and z from the triangle table and adds a new column named triangle. The CASE statement checks whether the given set of values (x, y, z) satisfies the conditions for forming a triangle.

Step 2: Evaluate the CASE statement

The conditions within the WHEN clause check whether the sum of any two sides is greater than the third side. The conditions are:

CASE WHEN x + y > z AND y + z > x AND x + z > y THEN 'Yes' ELSE 'No'
  • x + y > z: The sum of side x and side y is greater than side z.
  • y + z > x: The sum of side y and side z is greater than side x.
  • x + z > y: The sum of side x and side z is greater than side y.

If all three conditions are true, then the CASE statement evaluates to 'Yes,' indicating that the given values can form a valid triangle.

If any of the conditions is false, the ELSE clause is triggered, and the CASE statement evaluates to 'No,' indicating that the values cannot form a valid triangle.

Final Output:

+----+----+----+----------+ | x | y | z | triangle | +----+----+----+----------+ | 13 | 15 | 30 | No | | 10 | 20 | 15 | Yes | +----+----+----+----------+

.....

.....

.....

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