-1

次のような User テーブルがあります。

Userid| Username |city| state

ここでは userid が主キーで、入札テーブルがあります

Userid|seller|iid|starttime|bidtime|bidprice

ここでは、userid、seller、iid が主キーを形成します

全体で最も多くの入札を行った人のユーザー ID と名前が表示されるように SQL クエリを作成したいと考えています。次のようにクエリを書きました。

select u.userid,u.uname from user1 u, bid b where u.userid=b.bidder and
b.bidder=(select max(c) from (select count(*) as c, bidder from bid group by bidder));

ただし、この場合、内部選択は、指定された条件を満たさない最大値を表示しています。この問題にアプローチする方法について助けが欲しい

4

2 に答える 2

0
select userid, uname from user1 
where userid in 
(select bidder from bid group by bidder having count(bidder) = 
(select max(c) from (select count(*) as c, bidder from bid group by bidder)));
于 2013-02-24T22:39:02.477 に答える
0

これは、それを達成するためのより簡単な方法のようです。

SELECT TOP 1 u.*
FROM User1 u
JOIN bid b ON (u.userid=b.bidder)
ORDER BY Count(b.*)
于 2013-02-24T07:42:25.237 に答える