Mysql 如何从postgres中的查询生成子集?
我需要给定查询的元组子集。例如,如果我需要查找所有25岁以上员工的列表,并将其限制为atmost 5。如何为同一对象生成各种子集Mysql 如何从postgres中的查询生成子集?,mysql,sql,postgresql,Mysql,Sql,Postgresql,我需要给定查询的元组子集。例如,如果我需要查找所有25岁以上员工的列表,并将其限制为atmost 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 ; wil
# 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查询。如果您看到第二个查询的输出,我只能看到[1,2,3,4,5]元组是答案。我想要[1,2,3,4,5]、[1,2,3,4,6]、[1,2,3,4,7]和soo的唯一组合作为答案。要获得您的“排列类型”,请使用OFFSET
:
SELECT *
FROM employee
WHERE age > 25
ORDER BY employee_id -- or whatever
OFFSET 1
LIMIT 5;
要获取随机样本,请执行以下操作:
博士后。在MySQL中,您可以使用
RAND()
。Postgres或MySQL?这个问题被标记为两者。我正在寻找一种通用的方法,它可以同时在RDBMSDefine和某种排列中工作{1,2,3,4,5}
,{2,3,4,5,6}
不是置换…置换可能不是这里的好选择。我的意思是我需要各种可能的解决方案的组合。Rand()不保证唯一对,而offset只跳过元组,以此类推。。对于给定的查询,我期望得到的答案是9!以上示例中的组合。因为结果包含9个元组。如果我把你弄糊涂了,请告诉我。@Rahul:是你干的。我更困惑了。我想您应该在问题中添加示例值和示例结果。或者使用SQLfiddle并在问题中添加链接。随机示例:很抱歉反应太晚。这是我刚才提到的示例表和sql查询。如果您看到第二个查询的输出,我只能看到[1,2,3,4,5]元组是答案。我想要[1,2,3,4,5],[1,2,3,4,6],[1,2,3,4,7]和soo关于唯一组合的答案。
SELECT *
FROM employee
WHERE age > 25
ORDER BY random()
LIMIT 5;