【问题标题】:Select random x of top y records选择前 y 条记录中的随机 x
【发布时间】:2013-06-21 16:51:38
【问题描述】:

我需要从按数量排序的前 100 条记录中随机选择 5 条记录。

这可以分为 2 个查询,但我不知道如何在不创建函数的情况下组合它们(我认为这可能效率较低。

查询 1:SELECT TOP 100 from Cars order by price desc

查询 2:SELECT TOP 5 * FROM (Query1) ORDER BY NEWID()

我只是不确定如何组合这些,无论是使用内部连接还是仅使用内部选择?

我的第一反应是尝试这个不起作用:

SELECT TOP 5 * FROM (SELECT TOP 100 * FROM Cars order by Price desc) ORDER BY NEWID()

【问题讨论】:

  • 它们需要有多“随机”?
  • 我认为它们的随机性并不重要,但当然,如果有办法确保完全随机性,它就不会受到伤害。

标签: sql


【解决方案1】:

您需要命名您的子查询:

SELECT TOP 5 * FROM (SELECT TOP 100 * FROM Cars order by Price desc) [A] ORDER BY NEWID()

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-06-28
    • 1970-01-01
    • 1970-01-01
    • 2018-11-19
    • 1970-01-01
    相关资源
    最近更新 更多