MS Access - 根据百分比随机选择记录

Posted

技术标签:

【中文标题】MS Access - 根据百分比随机选择记录【英文标题】:MS Access - randomly select records based on percentage 【发布时间】:2017-11-03 11:56:49 【问题描述】:

我有一个数据库,我需要在其中随机选择每个日期、每个用户的记录,并且每个用户都有不同百分比的必须选择的记录。

如果我只有一个日期和一个用户,我可以这样做:

    strSQL = "SELECT TOP " & intPercent & " PERCENT * FROM [tblRevision] WHERE & _ 
DateCreated = #" & dteDate & "# ORDER BY RandomNumber DESC;"

有人可以指出正确的方向,以便我可以将其应用于包含多个日期和多个用户的记录集。

有人建议我的问题可能与以下帖子重复:Random sorting query Access,但这并不能解决我关于一个日期和多个用户的问题。

提前致谢。

【问题讨论】:

Random sorting query Access的可能重复 【参考方案1】:

UNION 语句怎么样?

select first set of data
UNION
select second set of data
UNION
select third set of data
ORDER BY col1, col2

【讨论】:

这个问题如何适用? 要使用三个日期,请创建三个 select 语句并将它们联合在一起: strSQL = "SELECT TOP " & intPercent & " PERCENT * FROM [tblRevision] WHERE & DateCreated = #" & dteDate & "# " & "UNION SELECT TOP " & intPercent & " PERCENT * FROM [tblRevision] WHERE & DateCreated = #" & dteDate2 & "# " & "UNION SELECT TOP " & intPercent & " PERCENT * FROM [tblRevision] WHERE & DateCreated = #" & dteDate3 & "# " & "ORDER BY RandomNumber DESC;" 我可能不理解这一点,但在我看来,这使它变得非常静态。如果要执行此操作的日期多于或少于 3 个怎么办。我每次都必须修改查询吗? 您可以使用一系列 IF 语句来构建 SQL 字符串。例如,创建第一个语句。如果有一个 Date2 然后 strSQL = strSQL & " UNION " & strSQL2 等。

以上是关于MS Access - 根据百分比随机选择记录的主要内容,如果未能解决你的问题,请参考以下文章

向 MS Access Query 添加百分比列

MS-Access 计算报告中已完成任务的百分比

在 SQL 中插入一个百分比到 MS Access

使用联合从 MS Access 表中选择随机记录 [重复]

从 Snowflake 中的表中选择随机百分比(使用 WHERE 子句时)

如何根据百分位数过滤表格,然后在 HQL 中随机抽样?