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

Database 从一个表中的分组数据获取随机数据,database,random,sqlite,Database,Random,Sqlite,情况是这样的。我有一个包含以下列的数据库表: 患者ID 患者组 FIRSTNAME LASTNAME 地址 我想从某些患者组中随机获取患者ID 共有5个患者组,表中的总行数约为10000(10K)。 每个患者组的数据数量不同。某些患者组的数据比其他组少。您知道此任务最快的SQL查询吗?顺便说一下,我正在使用SQLite3 如果没有患者组,我可以提出以下查询: SELECT PATIENT_ID FROM TB_Patient WHERE rowid >= (ABS(RANDOM())

情况是这样的。我有一个包含以下列的数据库表:

  • 患者ID
  • 患者组
  • FIRSTNAME
  • LASTNAME
  • 地址
我想从某些
患者组中随机获取
患者ID

共有5个
患者组
,表中的总行数约为10000(10K)。 每个
患者组的数据数量不同。某些
患者组
的数据比其他组少。您知道此任务最快的SQL查询吗?顺便说一下,我正在使用SQLite3

如果没有
患者组
,我可以提出以下查询:

SELECT PATIENT_ID FROM TB_Patient 
WHERE rowid >= (ABS(RANDOM()) % (SELECT MAX(rowid) FROM TB_Patient)) LIMIT 1
你解决这个问题的最佳方法是什么?目标是尽可能快的查询


谢谢。

根据您正在运行的患者组,尝试使用不同的
查询:

SELECT PATIENT_ID 
FROM TB_Patient 
WHERE PATIENT_GROUP = <group_id> 
ORDER BY RANDOM() 
LIMIT 1
选择患者ID
来自结核病患者
其中,患者组=
随机排序
限制1
我不确定它是否更快,但它应该更容易使用


祝你好运

根据您正在运行的患者组,尝试使用不同的
查询:

SELECT PATIENT_ID 
FROM TB_Patient 
WHERE PATIENT_GROUP = <group_id> 
ORDER BY RANDOM() 
LIMIT 1
选择患者ID
来自结核病患者
其中,患者组=
随机排序
限制1
我不确定它是否更快,但它应该更容易使用

祝你好运