sql - SQL:查询以检索数据
问题描述
我正在处理一个 SQL 项目,其中我有表 Actor AlbumId TrackId InvoiceLine 和 Invoice ,我想检索其曲目是销量前 3 名的演员的姓名。
ex(来自 10 位艺术家的表格)。
德雷克(售出 300 首曲目)
肯德里克(233 首曲目)
Cardi B(200 首曲目)
我是 SQL 新手,下面有我的图表。我知道我必须连接演员专辑曲目和发票的表格才能从 invoiceline 表格中获取 3 max(count(trackid)) 给我制作特定曲目的演员的姓名
解决方案
下面将相关表连接在一起,并使用聚合COUNT
函数来计算与歌曲关联的发票行数。
您可能希望使用 TOP 3 WITH TIES,以防有两位艺术家排名第三且销售额相同
SELECT TOP 3
ar.Name
FROM InvoiceLine il
JOIN Track t
ON il.TrackId = t.TrackId
JOIN Album al
ON al.AlbumId = t.AlbumId
JOIN Artist ar
ON ar.ArtistId = al.ArtistId
GROUP BY ar.Name
ORDER BY COUNT(t.TrackId) DESC
推荐阅读
- python - 如何在 DynamoDB 中进行简单扫描?
- python - Python requirements.txt 设置从 file:// whl 文件安装的几个包并由 pypi 休息
- java - 替换变异元音形成一个字符串
- php - 如何维护复选框的状态?
- json - 查询集 Django
- authentication - 使用 AWS CloudFormation 在启动时将具有特定内容的文件从 secretsmanager 添加到机器中
- javascript - 如何在本地主机上的 Windows 上的 apache xampp 上的 htdocs 目录上设置用户名和密码
- ios - 带有 UIContextMenuConfiguration 的 iOS UITableViewCell:无法同时满足约束
- c++ - 虚拟继承中派生类的sizeof
- c - 如何解决此错误“找不到 -lc”?