mySQL:使用 'max' 时获取行的其余数据

标签 mysql

我有一个看起来有点像这样的表:

user_id   item_id   bid_amount
5         12        22
6         12        47
7         12        40
6         14        55

我正在尝试获取每个项目的最高出价以及属于该出价的 user_id。我目前的尝试:

select user_id, max(bid_amount) from bids group by item_id;

失败得很厉害。我认为它只是组中第一行的 user_id - 是否有一个查询可以获取我想要的数据?

最佳答案

SELECT user_id, item_id, bid_amount FROM bids 
WHERE (item_id, bid_amount) IN (
   SELECT item_id, MAX(bid_amount) FROM bids GROUP BY item_id
)

在线查看它:sqlfiddle

关于mySQL:使用 'max' 时获取行的其余数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10507827/

相关文章:

php - Linux Centos MySQL PHP InnoDB 上的内存管理

mysql - phpmyadmin 上的重复条目

mysql - 在 MySQL 中将表导出到 csv 文件的不同行数

mysql - 恢复清除的 mysql binlog 文件

java - 在 Spring Boot 的 application.properties 中使用 env 变量

c# - .net 无法加载文件或程序集 MySql.Data。强名称验证失败 (0x8013141A)

mysql - SQL 查询计数选择

mysql - 这个说法有什么问题?

mysql - 如何检查 INSERT INTO SELECT block 中一列的两个不同条件?

mysql - SQL 在选择中进行选择