【发布时间】:2011-06-15 03:43:16
【问题描述】:
开始执行我的英语,但我需要一个 sql 的帮助:
我有一个包含优惠的表格,例如:ID、id_user、offer、timestamp
而且我需要得到一个带排序的行,这将是页面上的一个 id_user(例如,每 10 行中只有一个唯一的 id_user,第二个带有时间戳的订单)
例子:
1, Pepa, Auto, 1.1.2011
2, Pepa, Motorka, 1.1.2011
3, Karel, Traktor, 2.1.2011
4, Lukas, Jeep, 2.1.2011
5, Pepa, Autokara, 3.1.2011
6, Jindra, Traktor, 5.1.2011
=> 排序(页面上有 2 行)
**1. Page**
1, Pepa, Auto, 1.1.2011
3, Karel, Traktor, 2.1.2011
**2. Page**
2, Pepa, Motorka, 1.1.2011
4, Lukas, Jeep, 2.1.2011
**3. Page**
5, Pepa, Autokara, 3.1.2011
6, Jindra, Traktor, 5.1.2011
在简单的“一页上的唯一用户优惠”中
感谢您的帮助!
【问题讨论】:
-
你能写一个伪代码算法来解释你如何决定哪些行应该放在哪里吗?在计算上可能很难找到一种方法来排列数据,以便没有用户在同一页面上出现两次。这就像背包问题,是NP-Complete。
-
行数不多的情况需要处理吗?例如,在您的示例中,如果您想在页面上显示 5 行,它将如何工作?即使总共只有 6 个条目,是否仍然有 3 页,因为有 3 行 Pepa 行?