2017-09-04 54 views
0

給我最麻煩的部分是顯示薪水多少,知道如何做到這一點我想列出所有的導師名字,其薪水高於平均工資,並顯示薪水多大於

這是我寫下來的教師的工資ATM是大於平均值只需要展示如何通過更大的代碼:

SELECT tName, Salary 
FROM Tutor 
WHERE salary > (SELECT avg(Salary) FROM Tutor; 
+1

哪個SQL方言是什麼?你可以使用兩個查詢變量 - 或者它必須是單個查詢嗎? – Dai

+0

另外,儘量避免使用相關子查詢(SELECT語句在另一個SELECT子句或WHERE子句中),但正常的子查詢(FROM中的SELECT)是可以的。 – Dai

+0

它可以是兩個查詢我猜 –

回答

0

你接近 - 一個可能的語法是:

SELECT tName, Salary - ((SELECT avg(Salary) FROM Tutor) as SalaryDiff 
FROM Tutor 
WHERE Salary > (SELECT avg(Salary) FROM Tutor; 

根據你的SQL方言,可能有更好的方法來做到這一點! See this question替代方法。

+0

tyvm我從這個查詢中學到了一些東西,現在我可以做tyvm人祝福。 –

0

一種替代方法是使用變量來避免潛在低效的查詢執行計劃:

DECLARE @avgSalary money 
SELECT @avgSalary = AVG(salary) FROM Tutor 

SELECT 
    tName, 
    salary, 
    @avgSalary, 
    salary - @avgSalary AS salaryDiff 
FROM 
    Tutor 
WHERE 
    salary > @avgSalary 
相關問題