2017-05-09 53 views
0

Source Data怎样写平均innerQuery

从图片我有相同的课程ID和多部影片,因为我想显示整体观看百分比平均他们的我该怎么办,我想是这样的:

(SELECT SUM(watched_percentage) FROM tbl_student_learning_path where course_id = 298 
AND SELECT COUNT(watched_percentage) FROM tbl_student_learning_path where course_id = 298) 
as overallScore 
+1

通常情况下,OVE (SUM(watched_time)/ SUM(total_time))* 100'或'((45 + 5)/(93 + 5))* 100'或51.02%,而不是48%的平均值,以及100%或74%。后者几乎完全没有意义。 –

+0

绝对同意@JonathanLeffler,并打算写一些类似的答案,但没有时间。而现在我看到一个更差的答案已被接受!? –

+0

好的,我该怎么写才能写出答案。 –

回答

2

按照意见,你会得到一个加权平均这样

SELECT 
    course_id, 
    (100 * SUM(watched_total_time)/SUM(video_total_time)) AS WeightedAvg 
FROM 
    tbl_student_learning_path 
WHERE 
    course_id=298 
GROUP BY 
    course_id 
1
SELECT course_id,AVG(watched_percentage) AS Avg 
FROM tbl_student_learning_path 
WHERE course_id=298 
GROUP BY course_id