从一个表中的分组数据中获取随机数据

时间:2011-03-09 08:47:03

标签: database random sqlite

情况如下。我有一个数据库表,其中包含以下列:

  • PATIENT_ID
  • PATIENT_GROUP
  • FIRSTNAME
  • LASTNAME
  • ADDRESS

我想从某些PATIENT_ID中随机获取PATIENT_GROUP

只有5 PATIENT_GROUP,表中的总行数约为10000(10K)。 每PATIENT_GROUP的数据数量不尽相同。某些PATIENT_GROUP的数据少于其他{}。您是否知道此任务的最快可能的SQL查询?顺便说一下,我正在使用SQLite3。

如果没有PATIENT_GROUP,我可以提出这个问题:

SELECT PATIENT_ID FROM TB_Patient 
WHERE rowid >= (ABS(RANDOM()) % (SELECT MAX(rowid) FROM TB_Patient)) LIMIT 1

你最好的解决方法是什么?目标是尽可能快的查询。

感谢。

1 个答案:

答案 0 :(得分:1)

根据您正在运行的patient_group尝试使用以下不同<group_id>的查询:

SELECT PATIENT_ID 
FROM TB_Patient 
WHERE PATIENT_GROUP = <group_id> 
ORDER BY RANDOM() 
LIMIT 1

我不确定它是否更快但是应该更容易使用。

祝你好运!