[SQL ] 大量資料中取最大值

看板Database作者 (煉)時間9年前 (2015/07/08 15:25), 9年前編輯推噓0(004)
留言4則, 1人參與, 最新討論串1/1
內容/問題描述: 小弟遇到了一個瓶頸 我有個 table 要去裡面取這個 User 最後回答的那個版本號碼並且記錄到另一個 table 如下: UPDATE tm_team_assign_curriculum_profile t LEFT JOIN ( SELECT pp.uuid as profile_id , pp.badge_no , max(csqa1.version) as version , ce.uuid as cm_enrollment_id , ttacp.team_assign_curriculum_uuid FROM tm_team_assign_curriculum_profile ttacp INNER JOIN pm_profile pp ON ttacp.profile_id = pp.uuid INNER JOIN cm_enrollment ce ON pp.badge_no = ce.badge_no INNER JOIN cm_profile_survey_ques_answer csqa1 ON csqa1.cm_enrollment_id = ce.uuid WHERE ttacp.status = '1' AND ce.course_id = ( select type_id from ap_risksurvey_conf where code = 'ASSIGN_CHECKLISTCODE_RISKSURVEY' ) GROUP BY pp.uuid )userVersion ON userVersion.profile_id = t.profile_id SET t.enrollment_id = userVersion.cm_enrollment_id , t.version = userVersion.version , t.modified_date = NOW() WHERE t.status = '1' AND userVersion.profile_id is NOT NULL ; schema: schema: CREATE TABLE tm_team_assign_curriculum_profile (uuid , team_assign_curriculum_uuid , profile_id , enrollment_id , version , status ) CREATE TABLE pm_profile (uuid , badge_no ); CREATE TABLE cm_enrollment (uuid , course_id , badge_no ) CREATE TABLE cm_profile_survey_ques_answer (uuid , cm_enrollment_id , version ) tm_team_assign_curriculum_profile : 是這次要做的 user ( 最大會到5w 筆 ) cm_profile_survey_ques_answer : 是每個 User 回答的紀錄 , 人數有 將近 20w , 題目有三十幾題, 每次回答後 version會 +1 , 再加上不只回答一次 , 所以數量很大 一兩萬筆都是沒什麼問題的 , 但是只要有五萬筆就掛在這裡了 一直想不到有什麼方法可以再提升一下效率 , 不知道各位先進是否有什麼想法? -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 36.238.225.162 ※ 文章網址: https://www.ptt.cc/bbs/Database/M.1436340346.A.355.html ※ 編輯: kiey (36.238.225.162), 07/08/2015 15:26:31 ※ 編輯: kiey (36.238.225.162), 07/08/2015 15:27:44 ※ 編輯: kiey (36.238.225.162), 07/08/2015 16:43:34 ※ 編輯: kiey (36.238.225.162), 07/08/2015 16:45:34 ※ 編輯: kiey (36.238.225.162), 07/08/2015 16:50:10

07/09 11:23, , 1F
ALTER TABLE tm_team_assign_curriculum_profile ADD
07/09 11:23, 1F

07/09 11:23, , 2F
CONSTRAINT tm_team_assign_curriculum_profile_profile_id_
07/09 11:23, 2F

07/09 11:23, , 3F
pm_profile_uuid FOREIGN KEY (profile_id) REFERENCES
07/09 11:23, 3F

07/09 11:24, , 4F
pm_profile(uuid); 已解決!!謝謝!!
07/09 11:24, 4F
文章代碼(AID): #1LdD1wDL (Database)