问题描述
[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)
称为9.9
。
但是9.9是错误的。正确的答案应该是什么?
使用来自Chinook数据库的表。上面提供了链接。
解决方法
您必须对专辑所有曲目的单价求和,因此只需要2张表:albums
和tracks
。
加入他们,汇总:
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
子句,您也可以获得相同的结果。