首页 > 解决方案 > MySQL:仅当指定买家选择了项目时才查找项目的最大出价数

问题描述

MySQL 数据库架构是:

出价(id,买方,金额)

问题是:对于buyerNum 'abc' 出价的每个项目,列出id、对其进行的不同出价的数量(所有用户不仅仅是'abc')和最高价值出价。

我试过的是

SELECT id, COUNT(*), MAX(amount)
FROM Bids
WHERE buyer = "abc"
GROUP BY id

但该计数仅计算“abc”为该项目的 ID 出价的次数。我正在尝试某种连接以使计数超过“buyer =”abc””条件,但我对 MySQL 很陌生,所以我很挣扎。请帮忙!

标签: mysqldatabase

解决方案


SELECT b.id,
       a.total,
       MAX(b.amount) 
  FROM Bids b
  LEFT JOIN (select count(*) as total,id from Bids GROUP BY id) a 
    on b.id = a.id
 WHERE buyer = "abc" 
 GROUP 
    BY b.id

希望它会正常工作。


推荐阅读