获得10个每周变化的随机行(特色条目)



我尝试获得一个表的10个随机行。类似的问题还有很多,但我有一个附加条件:我希望这份清单每周更新一次,一年更新52次。这10个项目将是"本周随机特色"。

因此,我找到了这个获取随机行的代码片段,每次调用脚本

时,这些行都会发生变化
select top 10 percent * from [yourtable] order by newid();

它的问题是,我不能简单地添加一个种子,在这种情况下将是week-of-year。任何想法如何实现这一点?

您的代码示例是T-SQL (SQL Server)。因此,在SQL Server中这样做非常简单:

select *
from (select t.*,
             row_number() over (partition by datepart(wk, thedate) order by newid()) as seqnum
      from [yourtable] t
     ) t
where seqnum <= 10;

MySQL不支持row_number(),因此在该数据库中方法将不同。

最新更新