情况如下。我有一个数据库表,其中包含以下列:
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
你最好的解决方法是什么?目标是尽可能快的查询。
感谢。
答案 0 :(得分:1)
根据您正在运行的patient_group尝试使用以下不同<group_id>
的查询:
SELECT PATIENT_ID
FROM TB_Patient
WHERE PATIENT_GROUP = <group_id>
ORDER BY RANDOM()
LIMIT 1
我不确定它是否更快但是应该更容易使用。
祝你好运!