编写适当的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,这显然很重要。我建议你重新阅读课本和笔记,因为这是一个非常基本的问题。你能帮我解决吗?你问了两个不同的问题。