这里是新手,请耐心等待...
是否可以找到记录的模式?
我需要在广播编程软件的输出中找到重复的歌曲序列。
电台经理想知道某些其他歌曲“旁边”的某些歌曲是否随着时间的推移而重复,即 DJ 是否变得懒惰并重复某些序列。
- 表格按时间戳排序(播放日期时间)
- “下一个”定义为:
a) 连续(歌曲 x 的记录编号为 n,歌曲 y 的记录编号为 n+1)或
b) 由一个广告分隔(歌曲 x 的录制编号为 n,广告的录制编号为 n+1,歌曲 y 的录制编号为 n+2)
似乎无法找到获取我需要的信息的方法。有什么想法吗?
最佳答案
如果是一首又一首歌曲,假设有一个名为 tblSongs 的表,其中包含“序列”和“名称”列。您可能想尝试类似的事情
select top N first.name, second.name, count(*)
from tblSongs as first
inner join tblSongs as second
on second.sequence=first.sequence + 1
group by first.name, second.name
order by count(*) desc
如果歌曲序列 X,Y 与 Y,X 计数相同,则
select top N first.name, second.name, count(*)
from tblSongs as first
inner join tblSongs as second
on second.sequence=first.sequence + 1
or second.sequence=first.sequence - 1
group by first.name, second.name
order by count(*) desc
如果您正在寻找 2 首歌曲序列的任何模式,那么
select first.name, second.name, abs(second.sequence - first.sequence) as spacing_count
from tblSongs as first
inner join tblSongs as second
on second.sequence=first.sequence + 1
or second.sequence=first.sequence - 1
然后对spacing_count进行一些统计分析(这超出了我的能力)。
我相信这些将帮助您入门。
关于SQL - 查找记录模式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1263780/