クエリでランダムなレコードを取得するために、ランダムな順序で行を返すで提供されているソリューションを使用してみました。しかしNEWID()
、フェッチしたい列のリストに追加する必要があります。そうしないと、追加できませんORDER BY NEWID()
。残念ながら、結果セットに重複したレコードが含まれるようになります。
より明確にするために、このクエリでは、要求された列に NEWID() が存在するため、結果が重複します。
SELECT distinct top 4
Books.BookID,
Books.Authors,
Books.ShortTitle,
NEWID()
FROM Books
inner join Publishers on Books.PublisherID = Publishers.PublisherID
ORDER BY NEWID()
一意のレコードを取得しないというこの問題を解決するにはどうすればよいですか (ここでは BookID は PK です)。