2011-03-09 33 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 

我不知道這是快,但它應該是更容易的工作。

祝你好運!

相關問題