SQL-запрос, чтобы найти максимум из набора средних - PullRequest
0 голосов
/ 10 июля 2010

Это запрос, основанный на базе данных Northwind в MS SQL Server 2005.

Сначала мне нужно получить среднее значение UnitPrice из таблицы OrderDetails и сгруппировать его по ProductID для этого конкретного столбца и псевдонима.это как AveragePrice.

Тогда мне нужно найти максимум (AveragePrice), который является ничем иным, как максимумом предыдущего столбца, как я могу это сделать ???Это довольно сложно для меня, потому что мне нужно много времени, чтобы подумать об этом.

select
O.CustomerID,
E.EmployeeID,
E.FirstName+space(1)+E.LastName FullName,
OD.OrderID,
OD.ProductID,

(select avg(DO.UnitPrice) from OrderDetails 
    DO where OD.ProductID = DO.ProductID 
    group by DO.ProductID) AveragePrice ,

from OrderDetails OD
join Orders O
on OD.OrderID = O.OrderID

join Customers C
on C.CustomerID = O.CustomerID

join Employees E
on E.EmployeeID = O.EmployeeID

Это не домашний вопрос, я изучаю SQL, но я действительно застрял на этом этапе, пожалуйста, помогите мне.

1 Ответ

4 голосов
/ 10 июля 2010

Это 2 шага: «несгруппированный максимум сгруппированных средних»

Вы можете расширить его по мере необходимости, который показывает, как применить агрегат поверх совокупности

SELECT
    MAX(AveragePrice) AS MaxAveragePrice
FROM
    (
    select
         avg(UnitPrice) AS AveragePrice, ProductID
    from
        OrderDetails
    group by
        ProductID
    ) foo

Илис CTE

;WITH AvgStuff AS
(
    select
         avg(UnitPrice) AS AveragePrice
    from
        OrderDetails
    group by
        ProductID
)
SELECT
    MAX(AveragePrice) AS MaxAveragePrice
FROM
    AvgStuff
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...