-1

我的目标是列出教育水平高于平均水平的员工

这是我所拥有的

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

我猜我必须制作某种类型的子查询或分区?不知道该怎么做谢谢!

4

4 回答 4

2

尝试这个 :

Select  *
From [Enterprise].[dbo].[Employee]
WHERE ED_LVL > (Select  AVG(ED_LVL) From [Enterprise].[dbo].[Employee])
于 2013-10-29T04:15:38.883 回答
1

尝试这个:

select *
from Employee t
where t.ED_LVL >
(
    select AVG(e.ED_LVL) [avg]
    from Employee e
)
于 2013-10-29T04:20:40.283 回答
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 的员工详细信息。

于 2013-10-29T04:13:56.637 回答
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
于 2013-10-29T04:20:50.770 回答