1.8 KiB
1.8 KiB
layout, title, last_solved, category, leetcode_url, status
| layout | title | last_solved | category | leetcode_url | status |
|---|---|---|---|---|---|
| page | Triangles (SQL Case Statements) | sql | https://www.hackerrank.com/challenges/what-type-of-triangle/problem | Attempted |
Problem
Write a query identifying the type of each record in the TRIANGLES table using its three side lengths. Output one of the following statements for each record in the table:
Equilateral: It's a triangle with sides of equal length.
Isosceles: It's a triangle with sides of equal length.
Scalene: It's a triangle with sides of differing lengths.
Not A Triangle: The given values of A, B, and C don't form a triangle.
Input Format
The TRIANGLES table is described as follows:
Each row in the table denotes the lengths of each of a triangle's three sides.
Sample Input
Sample Output
Isosceles
Equilateral
Scalene
Not A Triangle
Explanation
Values in the tuple form an Isosceles triangle, because .
Values in the tuple form an Equilateral triangle, because . Values in the tuple form a Scalene triangle, because .
Values in the tuple cannot form a triangle because the combined value of sides and is not larger than that of side .
Solution
{% highlight sql %}
select A,B,C,
case when A=B and B=C and C=A then 'Equilateral' when A=B or B=C or C=A then 'Isosceles' when A!=B and B!=C and C!=A and (A+B>C and B+C>A and A+C>A) then 'Scalene' else 'Not A Triangle' end
from triangles
{% endhighlight %}
This is the right answer (just take away the A,B,C)
{% highlight sql %}
select A,B,C,
case when A+B>C and B+C>A and A+C>A then
case when A=B and B=C and C=A then 'Equilateral'
when A=B or B=C or C=A then 'Isosceles'
else 'Scalene'
end
else 'Not A Triangle' end
from triangles
{% endhighlight %}