sql - 查询以查找具有多个按属性分组的值的最大值
问题描述
我正在尝试获取特定项目的最大 bidamt 并显示出价该金额的用户
我能够在两个不同的查询中获得结果,每个查询都返回我想要的子集
select username, auctionbids.itemid, description, bidamt from AuctionBids
inner join users on auctionbids.userid = users.id
inner join auctionitems on auctionbids.itemid = auctionitems.itemid
select ab.itemid,max(ab.bidamt) as bidmax from auctionbids as ab group by ab.itemid
我想获取用户名、itemid、item descripton、max(bidamt) 加入三个表 - users、auctionitems、auctionbids。
users 包含用户 ID 和用户名
auctionitems 包含 itemid 和 item description
auctionbids 包含 userid、itemid、bidamt
解决方案
正如您所说,两个不同的查询每个都返回您想要的子集,您的查询应该是这样的:
SELECT am.username, am.itemid, am.descripton, max(am.bidamt) AS bidmax
FROM (
SELECT username, auctionbids.itemid, auctionitems.description, bidamt FROM AuctionBids
INNER JOIN users ON auctionbids.userid = users.id
INNER JOIN auctionitems ON auctionbids.itemid = auctionitems.itemid
) AS am
GROUP BY am.itemid
推荐阅读
- activemq-artemis - ActiveMQ Artemis 2.17 Hawtio 过滤器搜索问题
- node.js - 使用连接查询 SQLite 的 Node JS API 端点
- node.js - 如何将缓冲区从 memoryStorage(multer)转换为图像?
- excel - 更快地比较值的速度改进
- r - 如何在 R 中匹配两个不同的大数据框?
- cross-validation - 当某些迭代具有 NaN 值时,在 mlr3 ResampleResult 中聚合性能度量
- python-3.7 - 使用xlwt如何在excel文件中添加图像
- graylog - Graylog:未显示消息
- spartacus-storefront - 从 smartedit 更改后,斯巴达克斯页面 Id 未解决
- php - PHP 会话在内部不工作 do not include()