Welcome to Subscribe On Youtube
2118. Build the Equation
Description
Table: Terms
+++  Column Name  Type  +++  power  int   factor  int  +++ power is the column with unique values for this table. Each row of this table contains information about one term of the equation. power is an integer in the range [0, 100]. factor is an integer in the range [100, 100] and cannot be zero.
You have a very powerful program that can solve any equation of one variable in the world. The equation passed to the program must be formatted as follows:
 The lefthand side (LHS) should contain all the terms.
 The righthand side (RHS) should be zero.
 Each term of the LHS should follow the format
"<sign><fact>X^<pow>"
where:<sign>
is either"+"
or""
.<fact>
is the absolute value of thefactor
.<pow>
is the value of thepower
.
 If the power is
1
, do not add"^<pow>"
. For example, if
power = 1
andfactor = 3
, the term will be"+3X"
.
 For example, if
 If the power is
0
, add neither"X"
nor"^<pow>"
. For example, if
power = 0
andfactor = 3
, the term will be"3"
.
 For example, if
 The powers in the LHS should be sorted in descending order.
Write a solution to build the equation.
The result format is in the following example.
Example 1:
Input: Terms table: +++  power  factor  +++  2  1   1  4   0  2  +++ Output: ++  equation  ++  +1X^24X+2=0  ++
Example 2:
Input: Terms table: +++  power  factor  +++  4  4   2  1   1  1  +++ Output: ++  equation  ++  4X^4+1X^21X=0  ++
Follow up: What will be changed in your solution if the power is not a primary key but each power should be unique in the answer?
Solutions

# Write your MySQL query statement below WITH T AS ( SELECT power, CASE power WHEN 0 THEN IF(factor > 0, CONCAT('+', factor), factor) WHEN 1 THEN CONCAT( IF(factor > 0, CONCAT('+', factor), factor), 'X' ) ELSE CONCAT( IF(factor > 0, CONCAT('+', factor), factor), 'X^', power ) END AS it FROM Terms ) SELECT CONCAT(GROUP_CONCAT(it ORDER BY power DESC SEPARATOR ""), '=0') AS equation FROM T;