2013-10-29 94 views
-1

我的目標是具有比平均教育水平更高的員工名單如何獲得的平均SQL Server中的數據的一列

這裏是我有

Select [ED_LVL], 
    AVG (ED_LVL) as 'AVG ED_LVL' 
    From [Enterprise].[dbo].[Employee] 
    Group BY [ED_LVL] 

我猜我有使某種類型的子查詢或分區?不知道該怎麼辦 謝謝!

+0

使用「HAVING」子句過濾aggr。 – yswai1986

+0

@ yswai1986 - 你可以用'Having'顯示一個樣本嗎? –

回答

1

試試這個:

Select * 
From [Enterprise].[dbo].[Employee] 
WHERE ED_LVL > (Select AVG(ED_LVL) From [Enterprise].[dbo].[Employee]) 
+0

無法對包含聚合或子查詢的表達式執行聚合函數。 –

+0

我已更新答案,現在就試試 –

1

這是功能如何均可以使用:

SELECT AVG(column_name) FROM table_name 

關於想問你,試試這個:

Select * FROM [Enterprise].[dbo].[Employee] 
WHERE [ED_LVL]>(SELECT AVG(ED_LVL) FROM [Enterprise].[dbo].[Employee]) 

其中給出員工詳細誰家ED_LVL比一般ED_LVL更大。

+0

誰向你詢問'AVG'函數的語法? –

1

試試這個:

select * 
from Employee t 
where t.ED_LVL > 
(
    select AVG(e.ED_LVL) [avg] 
    from Employee e 
) 
0

試試這個!

SELECT [ED_LVL], 
    FROM (
     SELECT 
     [ED_LVL], 
     AVG([ED_LVL]) OVER() AS avg_edu, 
     FROM [Enterprise].[dbo].[Employee] 
    ) s 
    WHERE [ED_LVL]> avg_edu