编写适当的SQL查询,以确定哪个唱片集的播放长度(总曲目持续时间)最长
我试着和我的讲座一样,但不起作用 表格输入: 查询:编写适当的SQL查询,以确定哪个唱片集的播放长度(总曲目持续时间)最长,sql,Sql,我试着和我的讲座一样,但不起作用 表格输入: 查询: SELECT T1.TRACK_NAME, T1.TRACK_DURATION FROM TRACKS T1 INNER JOIN TRACKS T2 ON T1.TRACK_ID = T2.TRACK_ID WHERE T1.TRACK_DURATION = T2.TRACK_DURATION ORDER BY T1.TRACK_DURATION; SELECT T1.TRACK_NAME, T1.TRACK_DURATION FRO
SELECT T1.TRACK_NAME, T1.TRACK_DURATION
FROM TRACKS T1
INNER JOIN TRACKS T2 ON T1.TRACK_ID = T2.TRACK_ID
WHERE T1.TRACK_DURATION = T2.TRACK_DURATION
ORDER BY T1.TRACK_DURATION;
SELECT T1.TRACK_NAME, T1.TRACK_DURATION
FROM TRACKS T1
INNER JOIN TRACKS T2 ON T1.TRACK_ID = T2.TRACK_ID
WHERE T1.TRACK_DURATION = T2.TRACK_DURATION
ORDER BY T1.TRACK_DURATION;
它们显示了所有的轨迹和持续时间
这项工作是:
但样本结果必须是这样的:
TRACK_NAME TRACK_DURATION
Find You 3,5
Friends. 3,5
Silence 3,5
Rain 4
What About Us 4
根据您问题的标题,此查询将为您提供专辑的标题和总持续时间,其中曲目的总持续时间最长:
SELECT TOP 1 ALBUM_TITLE, SUM(TRACK_DURATION) AS TotalDuration
FROM ALBUMS a
INNER JOIN ALBUM_TRACKS at ON at.ALBUM_ID = a.ALBUM_ID
INNER JOIN TRACKS t ON t.TRACK_ID = at.TRACK_ID
GROUP BY ALBUM_TITLE
ORDER BY SUM(TRACK_DURATION) DESC
请选择:
select * from tracks as t where exists (
selecdt 1 from tracks as t2
where t2.track_id <> t.track_id and t2.track_duration = t.track_duration
)
order by t.track_duration, t.track_name;
select distinct track_name, track_duration
from tracks as t inner join tracks as t2
on t2.track_id <> t.track_id and t2.track_duration = t.track_duration
order by t.track_duration, t.track_name;
select track_name, track_duration
from tracks
where track_id in (
select track_id from tracks groups by track_duration having count(*) > 1
)
order by track_duration, track_name;
需要更多详细信息,如输入预期输出、您使用的逻辑是什么以及最基本的表架构。输出是什么?没有理由将磁道连接到磁道。您的查询甚至不包括albums表,或者至少不包括album_id,这显然很重要。我建议你重新阅读课本和笔记,因为这是一个非常基本的问题。你能帮我解决吗?你问了两个不同的问题。