在Mysql 5.5數據庫中,我有一個表。 最初,我只需要最高金額的第一筆記錄。SQL獲取第一個創建的最高金額的行
bid
----------------------
id int
personId int
itemId int
amount double
tieBreak boolean
updatedDate datetime
DATA:
id personId itemId amount tiebreak updatedDate
----------------------------------------------------------------------------------
1 4 111 100 1 2013-08-26 09:00:00
2 5 111 100 0 2013-08-26 10:00:00
3 6 111 100 1 2013-08-26 11:00:00
...
4 24 222 200 0 2013-08-27 09:00:00
5 57 222 200 0 2013-08-27 10:00:00
6 12 222 200 0 2013-08-27 11:00:00
...
7 2 333 400 1 2013-08-27 11:00:00
8 7 333 300 1 2013-08-27 11:00:00
9 25 333 600 1 2013-08-27 11:00:00
我需要爲每個的itemId的表,其中量等於最大金額爲項目和項目進行搶七真(1)獲得優先最早的條目全部記錄over tiebreak false(0)。
id personId itemId amount tiebreak updatedDate
----------------------------------------------------------------------------------
1 4 111 100 1 2013-08-26 09:00:00
4 24 222 200 0 2013-08-27 09:00:00
9 25 333 600 1 2013-08-27 11:00:00
1,因爲它與搶七= 1,最高金額最早的記錄 4,因爲其最早的記錄和其他一切等於 9,因爲它的最高金額
我得到的最接近是:
SELECT a.*
FROM bid a
LEFT OUTER JOIN bid a2 ON (a.itemId = a2.itemId AND a.amount < a2.amount)
WHERE a2.id IS NULL
ORDER BY tiebreak DESC, updatedDate ASC;
哪種作品,但拉回到所有投標匹配最高金額排序...... 我只希望爲每個項目,其中的最高金額和單最古老的投標tiebreak最高值(1或0)。意味着即使第二個出價排在第一位,tiebreak 1的金額爲10也會以tiebreak 0超過10。
樣本數據和所需輸出行的一個例子將有助於更好地理解它。 – mshsayem