mysql - SQL 获取值,然后计算这些值的总数

标签 mysql sql

enter image description here 我正在编写一个拍卖脚本,其中的表格与所附图片类似。

在拍卖中,两个用户可以提出相同的出价金额,例如,两个玩家可以出价“1”,这将使该出价金额总计为 2。

我需要一个查询,获取所有用户的单次出价金额以及拍卖 ID 范围内该出价金额的总数。

就目前情况而言,我首先获得用户的出价:

SELECT bid_amount FROM all_bids WHERE auction_id = '129' AND user_id = '9'

然后我在 PHP 中循环每个金额并执行以下操作

SELECT COUNT(*) FROM all_bids WHERE auction_id = '129' AND bid_amount = 'xxx'

但这当然非常耗电,我相信它可以在一个查询中完成。

我已经做到了

SELECT bid_amount,COUNT(*) FROM (SELECT bid_amount FROM all_bids WHERE auction_id = '129' AND user_id ='9') as foo GROUP BY bid_amount

它返回了正确的出价金额,但计数都是1,这是错误的,因为我猜我的错误查询仅计算子查询内的值,而不是该用户放置的出价之外的值

最佳答案

 SELECT  a.*, b.cnt from all_bids a 
 join (select bid_amount,COUNT(*) cnt from all_bids group by bid_amount) b 
 on a.bid_amount=b.bid_amount
 WHERE a.auction_id = '123' AND a.player_id = '456'

关于mysql - SQL 获取值,然后计算这些值的总数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49394687/

相关文章:

php - 将配置的 wordpress 主题/插件应用于多个网站

python - 尝试使用 Python 连接到 mysql 时出现 2013 丢失连接错误

sql - oracle复合主键/外键问题

java - 当从 PreparedStatement.close 引发 SQLException 时,我应该采取什么措施?

mysql - PDI(Kettle)循环作业步骤并行化

php - 在 foreach 方法中清空 PDO DB 查询的结果

使用 Kohana 的 ORM 构建 MySql 查询

sql - 如何使用表变量作为 OPENQUERY 的参数

sql - oracle中的分页是否强制排序?

mysql - 根据最大(列)结果显示特定列 MySQL