确定公司高于平均销售额的查询

Query to Identify Above Average Sales for Company

我正在尝试查找销售额高于特定公司平均销售额的员工。我正在使用 Microsoft SQL 服务器,这是我目前拥有的:

SELECT *
FROM
    (
    SELECT
        Name,
        SalesTotal as Sales,
        AVG(SalesTotal) as MeanSales
    FROM
        Employees
    GROUP BY
        Name
        SalesTotal
    ) nested
WHERE Sales > MeanSales

但是,我的查询returns什么也没有。这是写这样的东西的正确方法吗?我可以做些什么来简化事情?

如果 table 中每个员工有 1 行,则在 WHERE 子句中使用子查询,其中 returns 平均值:

SELECT Name, SalesTotal AS Sales
FROM Employees        
WHERE SalesTotal > (SELECT AVG(SalesTotal) FROM Employees)

单个标量值的AVG将成为单个标量值,并且标量值不能大于自身。你想要一个窗口聚合在这里:

--I prefer CTEs
WITH CTE AS(
    SELECT [Name],
           SalesTotal,
           AVG(SalesTotal) OVER () AS AvgTotal
    FROM dbo.Employees)
SELECT [Name],
       SalesTotal
FROM CTE
WHERE SalesTotal > AvgTotal;