0

テーブルのランダムな 10 行を取得しようとしています。似たような質問がたくさんありますが、追加の条件があります。このリストを毎週更新し、年に 52 回更新することです。この10点が「今週のランダム特集」になります。

そのため、スクリプトを呼び出すたびに変化するランダムな行を取得するこのスニペットを見つけました

select top 10 percent * from [yourtable] order by newid();

問題は、シードを単純に追加できないことです。この場合はweek-of-year. これを実装する方法はありますか?

4

1 に答える 1

0

コード サンプルは 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()、そのデータベースではアプローチが異なります。

于 2013-05-24T02:37:58.560 に答える