微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

使用 JOIN 显示 MAX 记录

如何解决使用 JOIN 显示 MAX 记录

我想选择最高的交易金额和该金额对应的相册名称

这是我目前所拥有的:

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) 然后是专辑名 (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 子句,因此您可能需要 LIMITSELECT 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

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。