❶ sql查出每個部門高於部門平均工資的前五條數據
with table_a as (
select deptno,avg(sal) avgsal from emp
)
select a.* from emp a inner join dept b on a.deptno=b.deptno inner join table_a c on a.deptno=c.deptno
and a.sal>c.avgsal
❷ 怎樣用oraclel中的sql語句查詢 emp表中工資大於平均工資的人員信息
select * from(
select emp.*,(select avg(sal+nvl(comm,0)) from emp) 平均工資 from emp)
where SAL+nvl(COMM,0)>平均工資;
或者
select * from emp where SAL+nvl(COMM,0)>(select avg(SAL+nvl(COMM,0)) from emp);
說明:工資包括 sal和comm(獎金),但是有的人沒有獎金(NULL,為了處理這個NULL用到nvl函數),所以總工資是 [SAL+nvl(COMM,0)]
---
以上,希望對你有所幫助。
❸ 在oracle 10g 中怎樣查詢比自己部門平均工資高的人的信息 求大神告訴一下具體的sql語句 最好解釋一下什麼
select a.ename from emp a where a.sal>(select avg(b.sal) from emp b where a.deptno=b.deptno group by b.deptno)
括弧里那部分是按部門算平均工資,然後和外表emp部門號關聯,選出大於平均工資的
其實上邊那句也可以怎麼寫的
select a.ename from emp a,
(select deptno,avg(sal) sal from emp group by deptno) b
where a.deptno=b.deptno
and a.sal>b.sal
就是括弧里那句當成一個結果集,算出平均工資,然後部門號關聯,找出高於自己部門平均工資的人
❹ plsql 查詢工資高於本部門平均工資的員工號e_id,員工姓名e_name,部門號d_id,工資money,並按照部門降序
Select e_Id 員工號, e_Name 姓名, d_Id 部門號, Money 工資
From Employees
Where Money > (Select Avg(Money) From Employees)
Order By d_Id Desc
❺ 列出各個部門中工資高於本部門的平均工資的員工數和部門號,並按部門號排序。用SQL語句詳細介紹一下,謝
select a.deptno,count(*) from emp as a,
(select deptno,avg(sal) as avgsal from emp group by deptno) as b
where a.deptno=b.deptno
and a.sal>b.avgsal
group by a.deptno
order by a.deptno
表名為emp,deptno為部門號
(select deptno,avg(sal) as avgsal from emp group by deptno) as b
這個是查詢每個部門的平均工資,並把這個結果集命名為b
然後關聯emp表查詢
where a.deptno=b.deptno
and a.sal>b.avgsal
這個就是在部門號相同的情況下,查找工資大於平均公司的人
最後count(*) 就是總人數,排序就正常order by 就OK
❻ 編寫一個PL/SQL塊,輸出所有比本部門平均工資高的員工 信息。
declare
begin
for v_emp in(
select dept.dname,X.b,emp.ename,emp.sal
from emp
join (select deptno a,round(avg(sal),2) b
from emp
group by deptno) X
on emp.deptno=X.a
and emp.sal>X.b
join dept
on emp.deptno=dept.deptno
order by emp.deptno desc)
loop
dbms_output.put_line('部門名稱為:'||v_emp.dname||';平均薪資為:'||v_emp.b||
';高於該部門平均工資的員工為:'||v_emp.ename||';該員工工資為:'||v_emp.sal);
end loop;
end;
❼ 用SQL查詢,在「教師信息」表中檢索高於平均工資的教師信息
select * from "教師信息" where "工資">(select avg(「工資」) from "教師信息")
❽ 一條SQL求大於某欄位平均值的條件。
SELECT
table1.*
FROM
table1,
(
SELECT
部門,
AVG(工資) AS 部門平均工資
FROM
table1
GROUP BY
部門
) 子查詢
WHERE
table1.部門 = 子查詢.部門
AND table1.工資 > 子查詢.部門平均工資
❾ 查出每個部門大於平均工資的員工姓名,所在部門名稱,工資的sql語句怎麼寫
這問題有歧義,是要查出每個部門大於所有人平均工資的還是查出每個部門大於所在部門所有人平均工資?
每個部門大於所有人平均工資的員工:
Select BM,YG From TB WHERE Salary>(Select Avg(Salary) From TB)
每個部門大於所在部門所有人平均工資的員工:
Select BM,YG From TB
Join (Select BM,Avg(Salary) as AvgSalary From TB
Group By BM) As Temp
On TB.BM=Temp.BM
where Salary>Temp.AvgSalary
❿ 怎樣用oraclel中的sql語句查詢 emp表中各部門工資大於本部門平均工資的人員信息
select * from emp a,(select avg(工資) gongzi from emp where 部門=『本部門』) b
where a.工資 >b.gongzi
and a.部門<>'本部門'
--
第一你要取出,本部門的平均工資
第二你才能查出除了本部的人之外,工資大於本部門平均工資的人員
第一:取得平均工資
select avg(工資) from emp where 部門=『本部門』
第二:使用上面取得的本部門的平均工資
select * from emp where 部門<>'本部門』and 工資>本部門的平均工資