Как отобразить запись с наибольшим значением в Oracle?

У меня есть 4 таблицы со следующей структурой:

Таблицаartist:

artistID lastname firstname nationality dateofbirth datedcease

Таблицаwork:

workId title copy medium description artist ID

ТаблицаTrans:

TransactionID Date Acquired Acquistionprice datesold askingprice salesprice customerID workID

ТаблицаCustomer:

customerID lastname Firstname street city state zippostalcode country areacode phonenumber email

Первый вопрос: у какого художника больше всего работ?artsold и сколько работ художника было продано.

Мой SQL-запрос такой:

SELECT * From dtoohey.artist A1 
INNER JOIN 
(
    SELECT COUNT(W1.ArtistID) AS COUNTER, artistID  FROM dtoohey.trans T1
    INNER JOIN dtoohey.work W1
    ON W1.workid = T1.Workid
    GROUP BY W1.artistID
) TEMP1
ON TEMP1.artistID = A1.artistID
WHERE A1.artistID = TEMP1.artistId
ORDER BY COUNTER desc;

Я должен получить всю таблицу, но я хочу показать только первую строку, которая является наибольшим количеством, как мне это сделать ??

Я пробовал вставлятьWHERE ROWNUM <=1  но он показывает идентификатор исполнителя с 1

qns 2 - продажи, из которых работа художника привела к самой высокой средней прибыли (то есть средней прибыли, полученной от каждой продажи работ художником), и какова эта сумма.

Мой SQL-запрос:

SELECT A1.artistid, A1.firstname FROM
(
    SELECT 
        (salesPrice - AcquisitionPrice) as profit, 
        w1.artistid as ArtistID 
    FROM dtoohey.trans T1
    INNER JOIN dtoohey.WORK W1
    on W1.workid = T1.workid
) TEMP1
INNER JOIN dtoohey.artist A1
ON A1.artistID = TEMP1.artistID
GROUP BY A1.artistid
HAVING MAX(PROFIT) = AVG(PROFIT);

Я не могу выполнить его

Я пробовал запрос ниже, но все еще не смог получить его, продолжаю получать ошибку, пропущенную правильную скобку

SELECT A1.artistid, A1.firstname, TEMP1.avgProfit
FROM 
(
    SELECT 
        AVG(salesPrice - AcquisitionPrice) as avgProfit, 
        W1.artistid as artistid
    FROM dtoohey.trans T1
    INNER JOIN dtoohey.WORK W1
    ON W1.workid = T1.workid
    GROUP BY artistid
    ORDER BY avgProfit DESC
    LIMIT 1
) TEMP1
INNER JOIN dtoohey.artist A1
ON A1.artisid = TEMP1.artistid

Ответы на вопрос(2)

Ваш ответ на вопрос