计算2列中存在的值的平均得分

时间:2019-01-29 23:24:29

标签: sqlite

下面是该视图所包含的架构,视图和数据

CREATE TABLE movie_cast (
  movie_id INTEGER,
  cast_id INTEGER,
  cast_name TEXT
);
CREATE VIEW good_collaboration AS SELECT a.cast_id cast_member_id1 ,b.cast_id cast_member_id2, COUNT(*) as movie_count, AVG(movies.score) as average_movie_score FROM movie_cast as a, movie_cast as b INNER JOIN movies ON a.movie_id = movies.id AND b.movie_id = movies.id WHERE a.cast_id<b.cast_id GROUP BY cast_member_id1, cast_member_id2 HAVING COUNT(*) >= 3 AND AVG(movies.score) >= 40
SELECT * FROM good_collaboration;
cast_member_id1|cast_member_id2|movie_count|average_movie_score
162652152|162652154|3|46.0
162652152|162652155|3|46.0
162652152|162652156|3|46.0
162652152|162656296|3|46.0
162652152|178810494|3|46.0
162652152|418638213|3|46.0
162652152|507677272|3|46.0
162652152|753745005|3|46.0
162652152|770726713|3|46.0
162652154|162652155|3|46.0
162652154|162652156|3|46.0
162652154|162656296|3|46.0
162652154|178810494|3|46.0
162652154|418638213|3|46.0
162652154|507677272|3|46.0
162652154|753745005|3|46.0
162652154|770726713|3|46.0
162652155|162652156|3|46.0
162652155|162656296|4|51.5
162652155|178810494|4|51.5
162652155|418638213|4|51.5
162652155|507677272|3|46.0
162652155|753745005|3|46.0
162652155|770726713|3|46.0
162652156|162656296|3|46.0
162652156|507677272|3|46.0
162652156|753745005|3|46.0
162652156|770726713|3|46.0
162652763|162652764|3|56.6666666666667
162652763|162652765|3|56.6666666666667
162652763|162657036|3|56.6666666666667
162652764|162652765|3|56.6666666666667
162652764|162657036|3|56.6666666666667
162652765|162657036|3|56.6666666666667
162655731|162656296|4|49.25
162655731|162656403|3|47.6666666666667
162655731|162661579|6|47.0
162655731|162663355|6|47.0
162655731|162665747|6|47.0
162655731|178810494|6|44.3333333333333
162655731|358317901|3|42.3333333333333
162655731|418638213|6|43.5
162655731|425838884|7|48.0
162656296|162656403|3|47.6666666666667
162656296|162661579|3|47.6666666666667
162656296|162663355|3|47.6666666666667
162656296|162665747|3|47.6666666666667
162656296|178810494|5|42.2
162656296|358317901|3|42.3333333333333
162656296|418638213|6|46.8333333333333
162656296|425838884|4|49.25
162656296|507677272|3|46.0
162656296|753745005|3|46.0
162656296|770726713|3|46.0
162656403|162661579|3|47.6666666666667
162656403|162663355|3|47.6666666666667
162656403|162665747|3|47.6666666666667
162656403|418638213|3|47.6666666666667
162656403|425838884|3|47.6666666666667
162661579|162663355|6|47.0
162661579|162665747|6|47.0
162661579|178810494|5|42.4
162661579|418638213|5|41.4
162661579|425838884|6|47.0
162663355|162665747|6|47.0
162663355|178810494|5|42.4
162663355|418638213|5|41.4
162663355|425838884|6|47.0
162665747|178810494|5|42.4
162665747|418638213|5|41.4
162665747|425838884|6|47.0
178810494|358317901|3|42.3333333333333
178810494|425838884|6|44.3333333333333
178810494|507677272|3|46.0
178810494|753745005|3|46.0
178810494|770726713|3|46.0
196103011|309684316|3|43.3333333333333
326391032|770685050|3|83.0
358317901|418638213|3|42.3333333333333
358317901|425838884|3|42.3333333333333
418638213|425838884|6|43.5
418638213|507677272|3|46.0
418638213|753745005|3|46.0
418638213|770726713|3|46.0
507677272|753745005|3|46.0
507677272|770726713|3|46.0
753745005|770726713|3|46.0

下面是问题说明。如果第1列中存在cast_member_id,我可以得到平均值,但如果column #2中存在cast_member_id,则无法得出平均值。

找到最好的合作者。从上一部分的good_collaboration视图中获得5个具有最高平均得分的演员,并将这个得分称为collaboration_score。该分数是与每个演员(包括average_movie_scorecast_member_id1中的演员)对应的cast_member_id2的平均值。 按此分数的降序对输出进行排序 如果得分相等,则按cast_name的字母顺序排序

输出格式:

            cast_id,cast_name,collaboration_score

0 个答案:

没有答案