0

我需要给定查询的元组子集。例如,如果我需要查找 25 岁以上的所有员工的列表并将其限制为最多 5 人。我如何为相同的人生成各种子集?

# select * from employee where age > 25 ;  
will list all the employee whose age is > 25 

tupleid = { 1,2,3,4,5,6,7,8,9 }

#select * from employee where age > 25 limit 5 ;
will list any 5 tuples from it.

tupleid on first time execution = {1,2,3,4,5}

但是我需要对 5 组元组进行某种排列,我得到 {1,2,3,4,5} {2,3,4,5,6} .. 等等..

有没有办法在 sql / postgres 中生成相同的?

编辑1:因为这个问题起初似乎很清楚。

我添加了一个示例表和我正在谈论的 sql 查询。sqlfiddle.com/#!2/69a0c/2如果您看到第二个查询的输出,我只能看到 [1,2,3,4,5] 元组就是答案。我想要 [1,2,3,4,5] , [1,2,3,4,6] , [1,2,3,4,7] 等等独特的组合作为答案。

4

1 回答 1

1

要获得您的“排列方式”,请使用OFFSET

SELECT *
FROM   employee
WHERE  age > 25
ORDER  BY employee_id    -- or whatever
OFFSET 1
LIMIT  5;

要获得随机样本:

SELECT *
FROM   employee
WHERE  age > 25
ORDER  BY random()
LIMIT  5;

邮递员。在 MySQL 中,您可以RAND()改用。

于 2013-10-28T21:57:05.283 回答