Welcome to Subscribe On Youtube
3053. Classifying Triangles by Lengths
Description
Table: Triangles
+++ \ Column Name \ Type \ +++ \ A \ int \ \ B \ int \ \ C \ int \ +++ (A, B, C) is the primary key for this table. Each row include the lengths of each of a triangle's three sides.
Write a query to find the type of triangle. Output one of the following for each row:
 Equilateral: It's a triangle with
3
sides of equal length.  Isosceles: It's a triangle with
2
sides of equal length.  Scalene: It's a triangle with
3
sides of differing lengths.  Not A Triangle: The given values of
A
,B
, andC
don't form a triangle.
Return the result table in any order.
The result format is in the following example.
Example 1:
Input: Triangles table: ++++ \ A \ B \ C \ ++++ \ 20 \ 20 \ 23 \ \ 20 \ 20 \ 20 \ \ 20 \ 21 \ 22 \ \ 13 \ 14 \ 30 \ ++++ Output: ++ \ triangle_type \ ++ \ Isosceles \ \ Equilateral \ \ Scalene \ \ Not A Triangle \ ++ Explanation:  Values in the first row from an Isosceles triangle, because A = B.  Values in the second row from an Equilateral triangle, because A = B = C.  Values in the third row from an Scalene triangle, because A != B != C.  Values in the fourth row cannot form a triangle, because the combined value of sides A and B is not larger than that of side C.
Solutions
Solution 1: Using CASE WHEN Statement
We can use the CASE WHEN
statement to determine the type of the triangle.
First, we need to determine whether the three sides can form a triangle. If not, we return Not A Triangle
.
Then, we check if the lengths of the three sides are equal. If they are, we return Equilateral
.
Next, we check if there are two sides with equal length. If there are, we return Isosceles
.
Otherwise, it means that the lengths of the three sides are all different, so we return Scalene
.

# Write your MySQL query statement below SELECT CASE WHEN A + B <= C OR A + C <= B OR B + C <= A THEN 'Not A Triangle' WHEN A = B AND B = c THEN 'Equilateral' WHEN (A = B) + (B = C) + (A = C) = 1 THEN 'Isosceles' ELSE 'Scalene' END AS triangle_type FROM Triangles;