Существует довольно много способов сделать то, на что, похоже, вы рассчитываете:
Использование подзапроса для определения максимального дохода для каждого компа:
SELECT Company, Total_Revenue
FROM myTable
INNER JOIN
(
SELECT Left(Company, 3) as leftcomp,
max(Total_Revenue) as maxTotalRevenue
FROM mytable
GROUP BY Left(Company, 3)
) mt
ON Left(myTable.Company, 3) = mt.leftcomp
AND myTable.Total_Revenue = mt.maxTotalRevenue;
Функция окна, которая позже фильтруется по Where:
SELECT *
FROM
(
SELECT Company,
Total_Revenue,
MAX(Total_Revenue) OVER (PARTITION BY Left(Company, 3)) as maxTotalRevenue
FROM myTable
) mt
WHERE Total_Revenue = maxTotalRevenue;
Коррелированный подзапрос в предложении WHERE
:
SELECT *
FROM myTable mt1
Where Total_Revenue =
(
SELECT max(total_revenue)
FROM myTable
WHERE Left(myTable.Company, 3) = Left(mt1.Company, 3)
);
SQLFiddle здесь