我想这两个表之间识别重复的记录。重复的记录将具有相同的播放列表名称和曲目ID,但具有不同的播放列表ID。我只需要确定重复记录的第二个即可。因此,有一个名为Music为1。轨道ID播放列表这是播放列表编号1的部分有一个名为音乐也有1轨道ID另一播放列表,但这种附加播放列表ID 8.我只是想找出音乐,1,8纪录。
我能够识别重复的记录,但是不确定如何提取播放列表名称。我想我可能需要使用EXISTS子句和MAX聚合函数,但是不确定并且不知道从哪里开始。我当前的代码如下。
DefaultCredentialsError
我正在尝试获得类似于以下结果的内容。因此,例如,先前显示为NULL轨道ID有声读物,但具有不同的播放列表ID。结果应该只是捕捉下一个播放列表名称/轨道ID(即有声读物/ NULL)匹配,其具有不同的播放列表ID(即,8)。
GOOGLE_APPLICATION_CREDENTIALS
答案 0 :(得分:1)
您必须使用聚集函数选择要显示的重复行的值
SELECT
P.Name AS [Playlist Name]
,MAX(P.PlaylistId)
,PT.TrackId AS [Track ID]
FROM PlaylistTrack AS [PT]
FULL JOIN Playlist AS [P]
ON PT.PlaylistId = P.PlaylistId
GROUP BY P.Name, PT.TrackId
HAVING COUNT(CONCAT(P.Name,PT.TrackId)) > 1
ORDER BY P.Name
请注意MAX(P.PlaylistId)
,而不是P.PlaylistId
对于NULL
的值,请尝试切换到INNER JOIN