用 JOIN 显示 MAX 记录
Display the MAX record with JOIN
我要select最高交易金额和相应的专辑名称到那个金额。
这是我目前拥有的:
SELECT a.AlbumName, MAX(t.TransAmt) AS HighestSale
FROM TRANSACTIONS t
JOIN COLLECTIONS c ON c.CollectionID = t.CollectionID
JOIN ALBUMS a ON a.AlbumID = c.AlbumID
GROUP BY a.AlbumName
我知道我需要一个 HAVING,但我不确定如何实现它。
这是我目前得到的:
专辑名称
最高销售额
卡萨达加
10.00
我走线
13.00
甜蜜复仇
14.00
宽恕之树
12.00
我只想看 HighestSale (14.00),然后是 AlbumName (Sweet Revenge)
您可以使用 ORDER BY
并获取一行来执行此操作。在标准 SQL"
SELECT a.AlbumName, t.TransAmt AS HighestSale
FROM TRANSACTIONS t JOIN
COLLECTIONS c
ON c.CollectionID = t.CollectionID JOIN
ALBUMS a
ON a.AlbumID = c.AlbumID
ORDER BY t.TransAmt DESC
OFFSET 0 ROW FETCH FIRST 1 ROW ONLY;
有些数据库不支持标准的 FETCH
子句,因此您可能需要 LIMIT
或 SELECT TOP (1)
或其他内容。
这个也可以
SELECT a.AlbumName, MAX(t.TransAmt) AS
HighestSale
FROM TRANSACTIONS t
JOIN COLLECTIONS c ON c.CollectionID =
t.CollectionID
JOIN ALBUMS a ON a.AlbumID = c.AlbumID
WHERE t.TransAmt = (SELECT MAX(TransAmt)
FROM TRANSACTIONS)
GROUP BY a.AlbumName
我要select最高交易金额和相应的专辑名称到那个金额。
这是我目前拥有的:
SELECT a.AlbumName, MAX(t.TransAmt) AS HighestSale
FROM TRANSACTIONS t
JOIN COLLECTIONS c ON c.CollectionID = t.CollectionID
JOIN ALBUMS a ON a.AlbumID = c.AlbumID
GROUP BY a.AlbumName
我知道我需要一个 HAVING,但我不确定如何实现它。
这是我目前得到的:
专辑名称 | 最高销售额 |
---|---|
卡萨达加 | 10.00 |
我走线 | 13.00 |
甜蜜复仇 | 14.00 |
宽恕之树 | 12.00 |
我只想看 HighestSale (14.00),然后是 AlbumName (Sweet Revenge)
您可以使用 ORDER BY
并获取一行来执行此操作。在标准 SQL"
SELECT a.AlbumName, t.TransAmt AS HighestSale
FROM TRANSACTIONS t JOIN
COLLECTIONS c
ON c.CollectionID = t.CollectionID JOIN
ALBUMS a
ON a.AlbumID = c.AlbumID
ORDER BY t.TransAmt DESC
OFFSET 0 ROW FETCH FIRST 1 ROW ONLY;
有些数据库不支持标准的 FETCH
子句,因此您可能需要 LIMIT
或 SELECT TOP (1)
或其他内容。
这个也可以
SELECT a.AlbumName, MAX(t.TransAmt) AS
HighestSale
FROM TRANSACTIONS t
JOIN COLLECTIONS c ON c.CollectionID =
t.CollectionID
JOIN ALBUMS a ON a.AlbumID = c.AlbumID
WHERE t.TransAmt = (SELECT MAX(TransAmt)
FROM TRANSACTIONS)
GROUP BY a.AlbumName