gpt4 book ai didi

mysql查询语句查找多少次我是listing的max amount

转载 作者:行者123 更新时间:2023-11-30 23:15:44 24 4
gpt4 key购买 nike

这是我的表格结构。

id
veh_id
user_id
amount
...

我还有其他表来关联 user_id 和 veh_id。

我想知道用户在每个 veh_id 上输入了多少次金额,以及有多少次这个金额实际上是收到的最高金额。我想为每个用户提供这 2 个计数。

id, veh_id, user_id, amount
1 1 30 100
2 1 32 105
3 2 30 100
4 2 32 95
5 2 33 90

我希望 select 语句给我:

user 30 as bid 2 times and 1 time is the higest bidder

user 32 as bid 2 time ans 1 time is the higest bidder

user 33 bid 1 time and 0 time the highest bidder

我不知道是否有可能获得这些数字。

最佳答案

可能很接近,不确定您是如何将车辆关联在一起的。

select
user_id,
count(*) as num_bids,
SUM(is_highest) as max_bids
from ( select
a.user_id,
COALESCE((select
MAX(b.amount) < a.amount
from bid as b
where b.id < a.id
and b.veh_id=a.veh_id
), 1) as is_highest
from bid as a
) as c
group by user_id

我的理解是用户 30 有 2 个最高出价(对车辆的 2 个首次出价)。

编辑:如果您只是在寻找每辆车的总出价上限 1,请告诉我。这实际上比回滚查看谁的出价最高要容易得多...

EDIT2:每辆车只有 1 个最大计数的解决方案:

出于某种原因,这似乎应该更简单:

select
user_id,
count(*) as num_bids,
count(vamt) as num_max
from bid
left join (
select veh_id as vid, max(amount) as vamt
from bid
group by veh_id
) as a on vid = veh_id and vamt <= amount
group by user_id

关于mysql查询语句查找多少次我是listing的max amount,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17930804/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com