0

[https://www.sqlitetutorial.net/sqlite-sample-database/]

我编写这段代码是为了得到“Big Ones 专辑的总价是多少?”的答案。

SELECT  al.Title, i.Total, tr.albumid, SUM(tr.UnitPrice)
FROM ((((artists ar INNER JOIN albums al ON ar.ArtistId = al.ArtistId)
INNER JOIN tracks tr ON al.AlbumId = tr.AlbumId)
INNER JOIN invoice_items ii ON tr.TrackId = ii.TrackId)
INNER JOIN invoices i ON ii.invoiceid = i.invoiceid)
WHERE al.Title = 'Big Ones'

我得到了SUM(tr.UnitPrice)as 9.9

但是 9.9 是错误的。正确答案应该是什么?

使用来自 Chinook 数据库的表。上面提供了链接。

4

1 回答 1

0

您必须将专辑所有曲目的单价相加,因此只需要 2 个表:albumstracks
加入他们,并聚合:

select a.title, 
       sum(t.unitprice) total_price
from albums a inner join tracks t 
on t.albumid = a.albumid
where a.title = 'Big Ones'
group by a.title

即使省略该group by子句,也可以获得相同的结果。

于 2020-08-25T07:19:37.847 回答