我有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