我想做的是:
select AlbumId from (
select Album.AlbumId, Sum(Track.UnitPrice) as Total from Album
inner join Track on Album.AlbumId = Track.AlbumId
group by Album.AlbumId
) tpt
where Total = (select max(Total) from tpt);
但我得到:
Table 'db.tpt' doesn't exist
- 这可能是有道理的。但是,我是 SQL 新手,不知道为什么 tpt 超出了我的 where 子句的范围。我怎样才能实现这个目标?我想获取具有最大总数的元组并提取 AlbumId
。
谢谢!
最佳答案
将 JOIN
与子查询结合使用。
select tpt.AlbumId from (
select Album.AlbumId, Sum(Track.UnitPrice) as Total from Album
inner join Track on Album.AlbumId = Track.AlbumId
group by Album.AlbumId
) tpt
JOIN (
select Sum(Track.UnitPrice) as Total from Album
inner join Track on Album.AlbumId = Track.AlbumId
group by Album.AlbumId
ORDER BY Total DESC
LIMIT 1
) maxtpt ON tpt.Total = maxtpt.Total
关于mysql:获取具有最大列值的别名的元组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28823944/