You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

拍卖脚本SQL查询需求:获取用户出价及对应金额的拍卖内总次数

解决方案:获取指定用户出价及对应金额的全场次数

没问题,我来帮你搞定这个SQL查询需求!你的核心需求是拿到指定用户在某场拍卖里的所有出价金额,同时知道每个金额在这场拍卖里被多少人(包括该用户自己)提交过对吧?

这里有两种写法,分别对应两种场景:

场景1:保留用户的每条出价记录(即使重复出价同一金额)

如果你想看到用户的每一条出价记录,同时显示对应金额的全场总次数,可以用这个查询:

SELECT 
    ab.bid_amount,
    bid_count.total_count
FROM 
    all_bids ab
JOIN (
    -- 先统计整场拍卖中每个出价金额的总提交次数
    SELECT 
        bid_amount,
        COUNT(*) AS total_count
    FROM 
        all_bids
    WHERE 
        auction_id = '129'
    GROUP BY 
        bid_amount
) bid_count ON ab.bid_amount = bid_count.bid_amount
WHERE 
    ab.auction_id = '129' 
    AND ab.user_id = '目标用户ID';

逻辑说明:

  • 子查询bid_count先对目标拍卖(auction_id='129')的所有出价按金额分组,算出每个金额的总次数。
  • 主查询把用户的个人出价记录和这个统计结果通过bid_amount关联,这样每条用户出价都会带上对应的全场总次数。比如用户两次出价1元,全场共有3次1元出价,结果会返回两行1 | 3。

场景2:只看用户出过的不同金额及对应全场次数

如果只需要用户出过的唯一金额列表,以及每个金额的全场总次数,可以给主查询加个GROUP BY去重:

SELECT 
    ab.bid_amount,
    bid_count.total_count
FROM 
    all_bids ab
JOIN (
    SELECT 
        bid_amount,
        COUNT(*) AS total_count
    FROM 
        all_bids
    WHERE 
        auction_id = '129'
    GROUP BY 
        bid_amount
) bid_count ON ab.bid_amount = bid_count.bid_amount
WHERE 
    ab.auction_id = '129' 
    AND ab.user_id = '目标用户ID'
GROUP BY 
    ab.bid_amount, bid_count.total_count;

使用提示:

  • 记得把语句里的'129'替换成你实际要查询的拍卖ID,'目标用户ID'换成指定用户的ID。
  • 如果你的all_bids表还有其他需要展示的字段(比如出价时间bid_time),直接加到SELECT列表里就行,不影响统计逻辑。

内容的提问来源于stack exchange,提问作者Gary Stewart

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.20 12:11:49