【发布时间】:2016-12-22 21:32:55
【问题描述】:
UPDATE feedback_aggregated_fact a
JOIN
( SELECT MAX(feedbackpercentagescore_for_respondent) overallmax_scored
, MIN(feedbackpercentagescore_for_respondent) overallmin_scored
, AVG(feedbackpercentagescore_for_respondent) overallavg_scored
, ROUND(stddev(feedbackpercentagescore_for_respondent)) overallst_dev
, ROUND(variance(feedbackpercentagescore_for_respondent)) overallvarian
, MAX(tot_que_cat_score) cat_max_scored
, MIN(tot_que_cat_score) cat_min_scored
, AVG(tot_que_cat_score) cat_avg_scored
, ROUND(stddev(tot_que_cat_score)) cat_st_dev
, ROUND(variance(tot_que_cat_score)) cat_varian
, MAX(tot_que_score) max_scored
, MIN(tot_que_score) min_scored
, AVG(tot_que_score) avg_scored
, STDDEV(tot_que_score) st_dev
, VARIANCE(tot_que_score) varian
, feedbackname
, fdf.feedback_id
, faculty_id
, frf.que_category
, frf.queid
FROM feedback_details_fact fdf
JOIN feedback_response_fact frf
ON frf.feedback_fact_id = fdf.entity_id
AND fdf.latest_flag='Y'
AND frf.answer_rowstate != -1
WHERE fdf.feedback_entity_type_id IN (1,7,8)
AND tot_que_score IS NOT NULL
GROUP
BY feedback_id
, faculty_id
, que_category
, queid
) b
ON b.faculty_id = a.faculty_id
AND b.feedback_id = a.feedback_id
AND a.question_category = b.que_category
AND a.question_id = b.queid
SET a.feedback_max_scored = b.overallmax_scored
, a.feedback_min_scored = b.overallmin_scored
, a.feedback_avg_scored = b.overallavg_scored
, a.feedback_st_dev = overallst_dev
, a.feedback_variance = b.overallvarian
, a.quescat_max_scored = b.cat_max_scored
, a.quescat_min_scored = b.cat_min_scored
, a.quescat_avg_scored = b.cat_avg_scored
, a.quescat_st_dev = cat_st_dev
, a.quescat_variance = b.cat_varian
, a.ques_max_scored = b.max_scored
, a.ques_min_scored = b.min_scored
, a.ques_avg_scored = b.avg_scored
, a.ques_st_dev = st_dev
, a.ques_vaiance = b.varian
WHERE type_row = 'feedback';
【问题讨论】:
-
欢迎来到 Stack Overflow!请拨打tour 并阅读How to Ask 以了解我们对这里问题的期望。请注意,我们不提供从头开始的编码服务。请告诉我们您已经尝试过什么,它是如何失败的,我们或许可以提供帮助。
-
我已经使用了以下索引:ALTER TABLE feedback_details_fact ADD KEY ix3(feedback_entity_type_id,feedback_id,quest_category_id,queid,faculty_id,subject_id); ALTER TABLE feedback_details_fact ADD KEY ix2(feedback_entity_type_id,feedback_id,feedback_window_id,quest_category_id,queid,faculty_id,subject_id); ALTER TABLE feedback_response_fact ADD KEY ix3(feedback_id,que_category,queid,tot_que_cat_score,tot_que_score); ALTER TABLE feedback_response_fact ADD KEY ix4(feedback_id,feedback_window_id,que_category,queid,tot_que_cat_score,tot_que_score);
-
我什至不会尝试阅读
-
此查询不可能返回有效结果,因为 GROUP BY 子句中缺少几个非聚合列。
-
在不知道
tot_que_score在哪个表的情况下无法回答。
标签: mysql performance optimization