我似乎無法得到我的頭。我在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