Как отобразить запись с наибольшим значением в 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