看板 Database 關於我們 聯絡資訊
※ 引述《chippclass (善假狼賺錢中)》之銘言: : 我從來沒接觸過10萬筆以上資料的案例 : 所以我本來是想 : 240萬 join 1600萬 的資料 : 你應該是會用MOONY135的分批跑排程之類的做法? : 不過若是10萬筆以下的資料要跑的話應該還是能一句sql跑完所以來解一下題目 對,我還是會用MOONY135的建議,分批跑排程處理 我只是出於個人的強迫症,想要知道能不能夠一句處理 這樣後面跑分批應該也會比較快一點 (?) 非常感謝你把整個邏輯脈絡呈現出來 我確定我應該是有看懂,也讓我學到不少知識 雖然最終我修改了code在SAS環境運作,還是沒辦法解決重複的問題 : 其中一個比較讓我意外的是裡面join出來的表格居然外面的可以select : : 前面我說過會有這個錯誤:ERROR : Duplicate column name 'sid' : : 在 mariaDB 中就直接錯誤,我覺得是合理的 : : 不然 select sid 到底是要撈哪個 sid ? : : 而你的 SAS sql 沒報錯,繼續跑出結果,我猜是不是不同資料庫對語法的行為不同? : : 莫非是因為你是 select * 而不是 select sid, : 所以 SAS sql 就把兩個 sid 都撈出來不報錯? : : 如果是這樣的話,那之後還有 GROUP BY date,sid,doctor : : 這個 group by sid 的又是哪個 sid ? fig.1 https://imgur.com/MKsarjC 這個是SAS的行為,其實也是有跳出警示,但只要沒有嚴重到無法執行 它還是會把結果跑給你 它應該是以前面那個SID為主 這個是把b.SID改名為s的結果 fig.2 https://imgur.com/z9mmuVX fig.1 893 行 NOTE 最下面那行可以看到 295 rows and 40 columns fig.2 901 行 NOTE 最下面那行是 295 rows and 41 columns 結果沒有改變,只多了1 column named s (就是找到的每一個b.SID) (這是只測試1筆a.SID的結果) 這是測試SID的原始資料樣子 fig.3 https://imgur.com/XIXCuEl 3/24 還有看醫生,25號之後就完全沒再回診,所以沒有DoctorID 這個是fig.2 code跑出的結果 https://imgur.com/vVp6aeN 3/24 找到281筆b.SID,就變成281行資料 https://imgur.com/D9OEJN1 最後14筆沒有看醫生,所以也找不到b.SID 還是很感謝你讓我知道這樣寫法的邏輯脈絡 -- ˋ │ │ ˋ φhacoolman 現在簽博班的話, /│ │____ │ │\ alan99 碩班就能畢業囉! / │ │ │ │ \ 簽嗎不簽嗎 │ ╰────╯ ╰────╯ │ 簽嗎不簽嗎 不簽嗎不簽嗎不簽嗎不\ │ 嗎不簽嗎 不簽嗎不簽嗎不簽嗎不簽 \ ︶︶ / 嘿~嘿~嘿~ -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 120.126.32.197 (臺灣) ※ 文章網址: https://www.ptt.cc/bbs/Database/M.1602833786.A.7F1.html ※ 編輯: Wengboyu (120.126.32.197 臺灣), 10/16/2020 15:38:15
chippclass: group by 是 a.date 不是 b.date 10/17 15:59
Wengboyu: 我看不懂你的意思,你是說group by後的date要改嗎? 10/17 16:37
chippclass: a.date 全名是 PrescriptionBeginDate 10/18 19:45
chippclass: b.date 全名是 prescriptiondate 10/18 19:46
chippclass: 你最後的 group by 要是 PrescriptionBeginDate 10/18 19:47
chippclass: 而不是 prescriptiondate 10/18 19:47
Wengboyu: https://imgur.com/s8Q1sUj 結果還是一樣的 不知道為何 10/19 09:33
chippclass: 不知道呢 10/20 00:07
chippclass: 有關從mariaDB改寫成SAS sql,我發現的也只有三個地方 10/20 00:09