1

これが私のテーブル構造です。

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ステートメントで次のことを教えてください:

ユーザー 30 として 2 回入札し、1 回が最高入札者

ユーザー 32 として 2 回の入札と 1 回の入札が最高入札者です。

ユーザー 33 入札 1回 0回 落札者様

それらの数値を取得できるかどうかはわかりません。

4

2 に答える 2

0

これを試して、

select x.user_id, x.bid_times, COALESCE(y.max_times,0) as max_times from
(select user_id, count(*) as bid_times from testt group by user_id) as x
 LEFT JOIN
(select user_id, count(*) as max_times  from testt a where 0=( select count(*) from testt where amount > a.amount and veh_id=a.veh_id ) group by user_id) as y
ON x.user_id=y.user_id
于 2013-07-29T18:50:06.727 に答える