我有4個表。一個叫藝術家。下面是表的結構:關於這些的SQL問題
artistID lastname firstname nationality dateofbirth datedcease
其他表稱爲工作
workId title copy medium description artist ID
跨表
TransactionID Date Acquired Acquistionprice datesold
askingprice salesprice customerID workID
Customer表
customerID lastname Firstname street city state
zippostalcode country areacode phonenumber email
第一個問題是藝術家都有最多的作品artold和有多少藝術家作品已經售出。
我的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;
我對整個事件表,但我想只顯示第一行是最高計數 - 我該怎麼做?
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);
我不能執行它
MySQL和Oracle使用不同的語法來解決這些類型的問題。你真的在尋找一個適用於這兩種RDBMS的答案嗎? – APC