2016-01-06 37 views
-3

可以想像,我有一個表,EMPLOYEES,具有SALARY列其中包括:我該如何解決這個SQL練習?

30250 
35260 
7340 
60185 

另外,假設,我們計算在一個破碎的「0」鍵計算器這些薪水的人。所以分錄爲:

325 
3526 
734 
6185 

現在,我發現與實際平均值和「斷鍵」平均的差異,看看這個人有多少是關閉的任務。我將如何去獲得「破鑰匙」的平均水平?

+0

您的查詢到目前爲止是什麼樣的? –

+1

我覺得我已經讀過了。小黛比最後一個問題關閉了,你又問了一遍? –

+0

我刪除了它,並以一種消除所有歧義的方式再次提出問題。這不是一個學校作業。我正在一個網站上練習SQL,我試圖找出如何解決這個問題。我欣賞這個假設。 – juice

回答

6

您可以使用replace函數刪除零點,然後只需減去兩個平均值:

SELECT AVG(salary) - AVG(REPLACE(salary, '0', '')) AS mistake 
FROM employees 
+0

[已確認](http://sqlfiddle.com/#!9/e9164/1) –

+0

不知道替換函數。非常感謝!我認爲有一個更簡單的方法比從int轉換爲char,刪除0然後將其轉回。 – juice

+0

@juice是的,我知道,我也不是這些隱式演員的粉絲,但我不能想到一個「數學」的方式來做到這一點。 – Mureinik

0

你需要找出哪一行是錯誤狀態? 你可以使用一個「左連接」一句,從第一個表查找至極數據不會在其他表