給我最麻煩的部分是顯示薪水多少,知道如何做到這一點我想列出所有的導師名字,其薪水高於平均工資,並顯示薪水多大於
這是我寫下來的教師的工資ATM是大於平均值只需要展示如何通過更大的代碼:
SELECT tName, Salary
FROM Tutor
WHERE salary > (SELECT avg(Salary) FROM Tutor;
給我最麻煩的部分是顯示薪水多少,知道如何做到這一點我想列出所有的導師名字,其薪水高於平均工資,並顯示薪水多大於
這是我寫下來的教師的工資ATM是大於平均值只需要展示如何通過更大的代碼:
SELECT tName, Salary
FROM Tutor
WHERE salary > (SELECT avg(Salary) FROM Tutor;
你接近 - 一個可能的語法是:
SELECT tName, Salary - ((SELECT avg(Salary) FROM Tutor) as SalaryDiff
FROM Tutor
WHERE Salary > (SELECT avg(Salary) FROM Tutor;
根據你的SQL方言,可能有更好的方法來做到這一點! See this question替代方法。
tyvm我從這個查詢中學到了一些東西,現在我可以做tyvm人祝福。 –
一種替代方法是使用變量來避免潛在低效的查詢執行計劃:
DECLARE @avgSalary money
SELECT @avgSalary = AVG(salary) FROM Tutor
SELECT
tName,
salary,
@avgSalary,
salary - @avgSalary AS salaryDiff
FROM
Tutor
WHERE
salary > @avgSalary
哪個SQL方言是什麼?你可以使用兩個查詢變量 - 或者它必須是單個查詢嗎? – Dai
另外,儘量避免使用相關子查詢(SELECT語句在另一個SELECT子句或WHERE子句中),但正常的子查詢(FROM中的SELECT)是可以的。 – Dai
它可以是兩個查詢我猜 –