2011-03-09 55 views
1

这是情况。我有以下的列一个数据库表:从一个表中获取分组数据中的随机数据

  • PATIENT_ID
  • PATIENT_GROUP
  • FIRSTNAME
  • LASTNAME
  • ADDRESS

我想从某些PATIENT_GROUP得到PATIENT_ID随机。

有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

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

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

我不知道这是快,但它应该是更容易的工作。

祝你好运!

相关问题