sql - SQL获取多个平均值的总和
问题描述
我有一张包含歌曲、用户和用户对歌曲评分的表格。
收视率。*
用户身份 | 歌曲ID | 评分 |
---|---|---|
95 | 1 | 8 |
12 | 1 | 6 |
95 | 1 | 8 |
13 | 1 | 6 |
81 | 2 | 3 |
42 | 2 | 1 |
51 | 3 | 6 |
22 | 3 | 6 |
我还有一张匹配歌曲 ID 和艺术家的表格。
歌曲。*
歌曲ID | 艺术家 |
---|---|
1 | 迈克尔杰克逊 |
2 | 女王 |
我需要的是获得每首歌的平均评分,然后求和以找到艺术家的总评分。
所以在这里,我试着用输入来展示,米歇尔杰克逊。
SELECT SUM( AVG(ratings.rating WHERE songID=1) + AVG(ratings.rating WHERE songID=3) )
想要的输出
输入,艺术家 | 输出,总额定值 |
---|---|
“迈克尔杰克逊” | 13 |
“女王” | 2 |
每一个答案都非常感谢,谢谢。
解决方案
您可以使用派生表(使用子查询作为表):
SELECT
songID
, SUM(average_rating) AS total_rating
FROM (
SELECT
songID
, artist
, AVG(rating) AS average_rating
FROM songs
GROUP BY songID
) AS song_ratings
GROUP BY artist
推荐阅读
- android - 运行与终端分离的 AVD 模拟器
- pcl - 显示pcd文件头
- node.js - 节点 Cron 不在 Heroku 服务器上执行
- python-telegram-bot - 电报机器人不发送消息
- c - 两个不同的指针指向C中的相同地址
- r - R,用逗号分隔的单独列。分离次数多于色谱柱
- rust - 如何使用 Rust nom 为这种结构文本编写解析器?
- powershell - 在 gitlab-ci.yml 作业中搜索文件
- ios - 试图避免 AnyView 为 SideMenu 组件提供类似 NavigationLink 的界面
- reporting-services - 在强制 SSRS 显示每页中的限制记录数后,聚合在每页上计算,而不是整个组