【发布时间】:2011-02-26 22:40:51
【问题描述】:
假设我有一张如图所示的表格:
id, auctionUser, auctionId, MinPrice, NumBids, PlacedBids
然后说我在上表中有以下条目具有相同的auctionId:
1 | user1 | 99 | 10.25 | 20 | 0
2 | user2 | 99 | 10.50 | 50 | 0
有没有办法编写一个查询( WHEREuctionId = 99 ),它会为每 0.01 的 MinPrice 返回一行,其中两行将“相交”(不知道这是否是正确的词,但它是最好的我可以根据 NumBids 中的出价数量来描述它吗?所以对于上面的数据,从 10.50 到 10.75 会有两个用户的“相交”。我希望能够创建流动数据以像这样显示,在用户之间为 NumBids 中设置的出价数量交替出价:
(bidAmount) | (auctionUser) | NumBids | PlacedBids
10.50 | user2 | 50 | 1
10.51 | user1 | 20 | 1
10.52 | user2 | 50 | 2
10.53 | user1 | 20 | 2
10.54 | user2 | 50 | 3
10.55 | user1 | 20 | 3
.
.
.
10.70 | user2 | 50 | 20
10.71 | user1 | 20 | 20 <-- ends here for user1 since 20 NumBids would be used up
10.72 | user2 | 50 | 21
我什至不知道这是否可以通过 sql 查询实现——甚至不知道如何启动这样的查询。我想我会把它扔在那里,看看是否有任何 sql 大师有想法。我想如果有办法做到这一点,从尝试使用 php 循环并产生结果的查询中产生它可能会快得多......也许不是。
与往常一样,非常感谢您在这方面的任何时间和建议!
【问题讨论】:
-
数据是否正确? 10.25 + 20 出价(1c 增量)甚至没有达到 10.50
-
你在某种意义上是正确的。为了简单起见,我只是使用了基本数据。我只是想弄清楚 MinPrice 和 NumBids 中的重叠范围,如何生成交替的行序列,如果投标人具有重叠的自动投标设置,直到重叠不再存在,我才能为投标创建条目.我认为下面关于数字表的答案在正确的轨道上......
-
所以让我说对了,你的起拍价是 10.25,来自 1 个用户,他们有 20 个出价,你有另一个用户有 50 个出价,现在拍卖高达 10.72。所以每次出价总是增加 0.01?
-
是的,每次出价为 0.01 增量。也许我的一个出价从 10.25 开始,另一个从 10.50 开始,这让我有些失望。我应该从 10.50 开始 - 一个有 20 个出价,另一个有 50 个出价。在现实中,将有不止 2 个用户具有起始 MinPrice 和 NubBids。我主要是想找到一种方法来根据起始 MinPrice 和 NumBids 的重叠生成出价行(以 0.01 为增量)。此应用程序是一个具有自动出价功能的拍卖网站,可让用户根据 X NumBids 的 MinPrice 进行系统自动出价。
标签: mysql