【发布时间】:2010-02-04 14:30:55
【问题描述】:
我正在开发一个拍卖应用程序,其中出价保存在表格中,格式如下:
id | user_id | auction_id | placed_at
我想按用户 ID 对出价进行分组并选择其计数,但前提是用户 ID 一个接一个出现。出价按placed_at 降序排列。这就是我的意思:
1 | 1 | 1 | 01-04-2010 00:00:06
2 | 1 | 1 | 01-04-2010 00:00:05
3 | 2 | 1 | 01-04-2010 00:00:04
4 | 2 | 1 | 01-04-2010 00:00:03
5 | 3 | 1 | 01-04-2010 00:00:02
6 | 2 | 1 | 01-04-2010 00:00:01
在这种情况下,我应该得到:
count | user_id | auction_id
2 | 1 | 1
2 | 2 | 1
1 | 3 | 1
1 | 2 | 1
我怎样才能达到这个结果?结果将用于生成拍卖的活动流,因此它们将用于生成字符串,例如“John Smith 在此拍卖中出价 2 次”。如果有帮助,该应用程序是使用 Ruby on Rails 构建的。
提前谢谢你。
【问题讨论】:
-
为什么有人会连续两次出价而中间没有人出价?这正常吗?
-
我们可以假设输入数据只包括来自一次拍卖的数据吗?
-
这更像是一场游戏拍卖而不是真正的拍卖,所以是的,人们会连续出价两次。您是对的,这仅包括来自一次拍卖的数据。
-
如果只需要一次拍卖,查询可以比Quassnoi的建议简单一点。