首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用SQL找到第二高的拍卖出价

如何使用SQL找到第二高的拍卖出价
EN

Stack Overflow用户
提问于 2011-05-10 05:54:00
回答 2查看 861关注 0票数 2

我正在一个小型的在线拍卖网站上工作,我需要一些sql来确定每个项目的售价。出价表包含以下字段:bidID、itemID、bidderID、bidAmount、bidDate

该网站的工作基本上类似于eBay,如果项目目前在10美元,“投标人A”出价50美元,项目价格将保持10美元,直到第二个投标人提出更高的出价。假设“投标人B”出价40美元,那么该项目将在($40 +增量)。根据拍卖的不同,增量要么是固定金额(比如5美元),要么是当前价格的一个百分比。

这就是概述。至于sql,我认为我需要为每个项目找到最高和第二高的出价,并使用这些来确定最终价格。

,找到每个项目第二高出价的最好方法是什么?

另外,请注意,我一直在使用Server 2000,因此解决方案不能包括ROW_NUMBER()或其他最近内置的函数。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2011-05-10 05:56:02

基本上,您可以做前2,然后将其包装在SELECT语句中,并只获得您想要的(较低的美元金额)。就像这样:

代码语言:javascript
复制
SELECT TOP 1 *
FROM (
   SELECT TOP 2 *
   FROM table
   WHERE <criteria match>
   ORDER BY amount DESC
) AS newTable
ORDER BY amount ASC
票数 7
EN

Stack Overflow用户

发布于 2011-05-10 05:57:23

我不知道这是否是最有效的解决方案,但它可能有效:

SELECT TOP 2 * FROM bids WHERE itemID = ... ORDER BY bidAmount DESC

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5945777

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档