comments | difficulty | edit_url | tags | |
---|---|---|---|---|
true |
Easy |
|
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.
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;