[程式] 一題資料庫程式 很簡單的
我有兩個table
A是 n*6 B是 m*6
那6個 column 分別是 ID v1-v5
要作下列工作
A每次出一row 跟B m個row v1-v5 一一比較
然後要把A比B大的個數算出來 最後找出m次比較最大值 output到 一個新table C
所以 C有 n*2 (id num_大)
id1 0
id2 4
這樣
我寫了一個 就是每次 A出第一row 跟B每row比 等於一次create m*7 那麼大的table
然後找出 最大值 接著刪掉 已經比完的id 再回到A出第一行row 這樣循環
跑n=10萬 row m=50萬 row 一小時都還跑不完
感覺應該有更快的寫法
請大家賜教 怎麼構思更快的寫法 我是用SAS(有的話就太完美)
但其他語言也沒關係 主要是想構思
--
鍵盤小弟........
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 74.135.36.127
※ 文章網址: https://www.ptt.cc/bbs/Wanted/M.1434683053.A.9F9.html
※ 編輯: cawaiilulu (74.135.36.127), 06/19/2015 11:08:07
→
06/19 11:13, , 1F
06/19 11:13, 1F
→
06/19 11:14, , 2F
06/19 11:14, 2F
→
06/19 11:14, , 3F
06/19 11:14, 3F
→
06/19 11:18, , 4F
06/19 11:18, 4F
第二行是對的
然後 從比較值中找出最大的row (例如有80row 都是5個皆A比B大)
output到C (包含 ID 80) 這樣
→
06/19 11:31, , 5F
06/19 11:31, 5F
→
06/19 11:31, , 6F
06/19 11:31, 6F
對 這都沒問題 我已經寫好了 主要是我的寫法跑很慢....
只要構思一個讓這個作法比較快的寫法 資料值不用擔心 謝謝
→
06/19 11:32, , 7F
06/19 11:32, 7F
我用ARRY + IF THEN
→
06/19 11:56, , 8F
06/19 11:56, 8F
→
06/19 11:57, , 9F
06/19 11:57, 9F
output是 A1 1
應該是這樣說 A有n row B有m row 每次A出一行 跟B m個一行一行比過
然後 假設m=4 比的結果是
A1 3 (表示A1 跟B1比 v1-v5 有3個比較大)
A1 2
A1 3
A1 1
output 結果 C
A1 2 (找到兩個"最大值" (最大值=3))
→
06/19 12:11, , 10F
06/19 12:11, 10F
沒關係 這個都不用管 假設就 都兩位以下數字 我主要是想問怎麼寫比較"快"
※ 編輯: cawaiilulu (74.135.36.127), 06/19/2015 12:13:19
討論串 (同標題文章)