Hello coders, today we are going to solve **The Blunder HackerRank Solution in SQL**.

**Problem**

Samantha was tasked with calculating the average monthly salaries for all employees in the **EMPLOYEES** table, but did not realize her keyboard’s **0** key was broken until after completing the calculation. She wants your help finding the difference between her miscalculation (using salaries with any zeros removed), and the actual average salary.

Write a query calculating the amount of error (**i.e. actual – miscalculated**: average monthly salaries), and round it up to the next integer.

**Input Format**

The **EMPLOYEES** table is described as follows:

Column | Type |
---|---|

ID | Integer |

Name | String |

Salary | Integer |

**Note:*** Salary* is per month.

**Constraints**

**1000 < Salary < 10^5**

**Sample Input **

Id | Name | Salary |
---|---|---|

1 | Kristeen | 1420 |

2 | Ashley | 2006 |

3 | Julia | 2210 |

4 | Maria | 3000 |

**Sample Output**

`2061`

**Explanation**

The table below shows the salaries *without zeros* as they were entered by Samantha:

Id | Name | Salary |
---|---|---|

1 | Kristeen | 142 |

2 | Ashley | 26 |

3 | Julia | 221 |

4 | Maria | 3 |

Samantha computes an average salary of **98.00**. The *actual* average salary is **2159.00**.

The resulting error between the two calculations is** 2159.00 – 98.00 = 2061.00**. Since it is equal to the integer **2061**, it does not get rounded up.

**Solution – The Blunder in SQL **

**MySQL**

SELECT CEIL(AVG(Salary)-AVG(REPLACE(Salary,'0',''))) FROM EMPLOYEES

**Disclaimer:** The above Problem **(The Blunder)** is generated by **Hacker Rank** but the Solution is Provided by **CodingBroz**. This tutorial is only for **Educational** and **Learning** Purpose.

vinayselect cast(CEILING(avg(cast(salary as float)) – avg(cast(replace(salary,0,”) as float)))as int) from Employees