2013-02-24 54 views
-1

我有用戶表如下:選擇最高出價整體

Userid| Username |city| state 

這裏的userid是主鍵 並有投標表

Userid|seller|iid|starttime|bidtime|bidprice 

這裏的用戶ID,賣方,IID形成主鍵

我想編寫一個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)); 

但在這種情況下,內部的選擇正在顯示其不列入滿足給定條件的最大值。我想要一些幫助來解決這個問題

+0

發佈一些示例數據和期望的結果將是有益的。 – Taryn 2013-02-24 16:31:22

回答

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))); 
0

這似乎是一個簡單的方法來實現這一點。

SELECT TOP 1 u.* 
FROM User1 u 
JOIN bid b ON (u.userid=b.bidder) 
ORDER BY Count(b.*) 
+0

使用'u.userid = b.bidder'而不是'u.bidder = b.bidder' – 2013-02-24 07:57:24

+0

使用oracle sql top 1 doesent在其中工作 – user1658435 2013-02-24 08:23:59

+2

這就是爲什麼用數據庫平臺標記您的問題是個好主意。 – JohnFx 2013-02-24 08:39:48