我似乎无法得到我的头。我在SQlite中有一张表格,我需要为每个组选择一个random()
记录。所以,考虑一个表如:组内选择随机记录sqlite
id link chunk
2 a me1
3 b me1
4 c me1
5 d you2
6 e you2
7 f you2
我需要SQL,将返回每个块的随机链接值。所以有一次我运行它会给:
me1 | a
you2 | f
下一次也许
me1 | c
you2 | d
我知道类似的问题已经回答了,但我没有找到一个的推导此处适用。
UPDATE:
坚果,跟进的问题:所以现在我需要排除其中一个新的领域“qcinfo”设置为“Y”的行。
这当然会隐藏行,只要随机ID碰到qcinfo ='Y',这是错误的。我需要排除在块中被考虑的行,但是如果任何记录具有qcinfo <>'Y',仍然为该块生成随机记录。
select t.chunk ,t.id, t.qcinfo, t.link from table1
inner join
(
select chunk ,cast(min(id)+abs(random() % (max(id)-min(id)))as int) AS random_id
from table1
group by chunk
) sq
on t.chunk = sq.chunk
and t.id = sq.random_id
where qcinfo <> 'Y'
代码或变量? –
如果我正确理解问题,则为变量。 – JohnZastrow